Of all the monopolies in the world conspiring against the interest of the general public ICANN is probably one of the ones most able to be usurped.
People only use DNS through public facing DNS servers. You can run your own if you want, whenever you want (and many routers are already doing just that, creating .local domains etc with dnsmasq). Practically anyone can operate as a naming system and you don't even need to hard break with ICANNs canonicity - you can still delegate to full ICANN compliant DNS providers if you want, but you can also go against their name policy where you want too if you are operating the name server.
Fixing DNS is probably one of the easiest "sea change" movements possible - many devices get their DNS delegated, so rather than convincing every grandmother to change their phones DNS server they often just need to change the DHCP provisioned DNS servers.
Of course, being "one of the easiest" doesn't make it actually easy. You need to convince a critical mass of DNS provisioning routers, devices, etc to stop respecting ICANN as the naming authority and pretty much every large corporation that would have a stake in this has already sunk cost with the ICANN / registrar mafia to get theirs. At this point, the monopoly often benefits them by shutting out competition through exploitative pricing and name restrictions.
The only practical way to ever get that critical mass is through automatic changeover systems. Updates to routers, phones, computers, etc that replace their priority DNS servers. Good, uh, luck with that, especially if the replacement you are pushing is going to be incompatible with (some) ICANN registered domains.
But anyone can run their own DNS server. And they can advertise whatever names they want. They don't have to listen to ICANN, but a replacement needs to gain enough adoption to displace ICANN's authority, which like with many monoculture monopolist services (Twitter, Facebook, Blink, etc) is extraordinarily difficult even in one of the easiest instances of it to fix.
By and large, a domain is less than 20 euro a year. You can come up with alternatives, but is it really worth it?
The hard part of domains is dealing with trademarks. In recently years it has been remarkably quiet in that area. Which means that ICANN is doing something right.
I don't particularly like ICANN, but the ccTLDs and legacy gTLDs are very stable. Which is a good thing.