turns out this is always needed. I also removed the explicit check for an empty tag union: there could still be tags in the ext even if the union itself seems empty. seems weird to optimize for the empty case because it'll be very rare in practice