In principle, it sounds a bit wrong that the `Union` operation calculates the vector transformations, but we then throw them away and instead get a new transformation later using `Reindex`.

That said, I'd keep the way it is - sounds like the current approach does the job and I'm not sure if there is any better way at the moment (it would probably require adding `UnionN` to the index builder, which sounds like a lot of work).

So, this is really just a note for later, in case we had another implementation where unioning was more efficient then reindexing (I imagine this could be sometimes the case).