To follow-up my earlier comments ...
I suspect for practical purposes we may want to limit the scope of some type
features.
For example, the greatest benefits for "open union" / "mixin" types is with
routines/operators, not so much with tables.
So, Pg could choose to support open unions but only for routines, where the
declared types of table columns must still be other types. Then you don't have
to worry about searching your data for where one might be used, but only search
your system catalog for routines/operators that use it.
But closed unions should be supported in tables too.
-- Darren Duncan