If registration were free one guy would write a script to register every possible domain and no one would be able to get one without buying it off of him.
IMO the .com domain name fees are… acceptable. It’s similar to how we deal with scarce resources in almost every other domain. The only real improvement I can think of would be some sort of LVT-like-system where high-value domains (dictionary words, short domains) would cost more than low-value ones (robertospizzaottawa.com) to discourage camping.