Something that's not obvious (so, it needs documenting) is that from this point on we have a fully working dataset. We go on to create a view-in-a-table, but that is entirely an optimisation. So we don't care if the creating the view fails.

Except that I bet that if the view actually does fail to be created then all sorts of things will go wrong because we've somehow depended on it.