Names are necessary for humans to do discovery without the help of discovery services. If you add discovery services (search engines) to the mix you get a better picture of the marketplace economics. If there are enough top level domains to allow for registration of similar names a squatter would have to lock up much more value to speculate on a name. Assuming lots of top level domains the ecosystem would need to rely on discovery services, which leads to SEO and other marketing tactics to surface the links and a richer economy for competition.
I think part of the solution is to seed the TLDs to 3 or 4 characters, and don’t auction them off but keep them as part of the registry infrastructure. Auction off the remaining name-space and then let the marketplace of discovery services provide the meta translation from intent to name.