While I don't advocate for breaking up ICANN, this article "Fixing DNS -- how to break up ICANN" (http://www.templetons.com/brad/dns/fix.html) presents a decent approach to the TLD 'problem' that would not focus on useless branding TLDs but instead encourage only TLDs that were going to add value to the Internet. In short, the idea is to only allow non-generic TLDs to be registered to force the TLD operator to differentiate their TLD from others, rather than just being the first one to register '.bank'.
It doesn't offer a solution to the complaint in the article that organizations will have to register 'apple', 'mcdonalds', or 'cocacola' in each new TLD, but I'm less sympathetic to that concern.
It doesn't offer a solution to the complaint in the article that organizations will have to register 'apple', 'mcdonalds', or 'cocacola' in each new TLD, but I'm less sympathetic to that concern.