There's no inherent reason to restrict the number of TLDs. The best way to combat rent seeking from registries is to allow any organization that has the technical capability to operate a registry.
Why do companies and organizations get special treatment over regular people? I think a simpler fix is just to ban any companies that register domains from squatting on them.
The bigger problem is the rent seeking some registrars are doing now by increasing prices. Not sure what domain portability might look like (maybe requiring multiple registrars per tld), but something like it would solve this problem.