The best answer to the TLD problem is to abandon it - grandfather it out. Stop adding new ones. They should do this by making the final period a non-special signifier in addresses. Anyone can pick anything they want and put any number of periods in their address they want. Every current address would still be unique and valid. But you can register new addresses with no TLD, just use whatever non-owned string makes the most sense for you. If you like TLD's and actually think they're useful, nothing's stopping you from registering new sites with a period followed by the three letters of any current TLD or any new one you want to make up. The process of handing out new addresses with no TLD fairly - you know, like "http://www.google," or "http://sex" would be a bit messy, but grandfathering out official TLD's would be the best system for the future internet.
This will never happen though, because there's too much money in selling new imaginary property with every new TLD they roll out. The majority of that money is not coming from people looking to take advantage of a new useful identifier, but from people looking to defend their identifier from others in the new domain - revealing the whole problem with the TLD sytem.