This doesn't help much to prevent collisions though, does it? An alternate namespace is obviously not going to use a TLD that already exists in the DNS, but it's much more likely to use one that exists in a different alternate namespace they've never heard of, since those will be more obscure and more likely to be missed. Putting them both under .alt does nothing to prevent this.
What you're really doing is reserving all of the as yet unallocated namespace to the DNS, privileging it over any alternatives which then have to use longer names. What you need is a mechanism for alternate namespaces to register their use of a particular subset of the global namespace against both other alternate namespaces and the DNS, at which point you wouldn't need to put them all under .alt.
They also immediately damaged that subset of the namespace:
> DNS stub and recursive resolvers do not need to look them up in the DNS context.
Now some DNS stub resolver implementers or administrators will read this and reject any queries under .alt, making it unsuitable for any namespace you would like intermediary resolvers to look up in an upstream server that supports them.
What you're really doing is reserving all of the as yet unallocated namespace to the DNS, privileging it over any alternatives which then have to use longer names. What you need is a mechanism for alternate namespaces to register their use of a particular subset of the global namespace against both other alternate namespaces and the DNS, at which point you wouldn't need to put them all under .alt.
They also immediately damaged that subset of the namespace:
> DNS stub and recursive resolvers do not need to look them up in the DNS context.
Now some DNS stub resolver implementers or administrators will read this and reject any queries under .alt, making it unsuitable for any namespace you would like intermediary resolvers to look up in an upstream server that supports them.