I have mixed feelings on this.
On one hand, as an outsider it seems like every country needs to bow down their heads to the North American ICANN to ask for permission to have their own TLD listed in their root servers (even if those servers are already located in the country that's asking for permissions).
But on the other hand, even if every country actually owned their root DNS servers and were completely independent from each other on this regard, everyone already expects the internet to work a certain way. So keeping things like they are now is the more pragmatic way to go.
It would be doable in an alternate universe, e.g. every domain is local except those who have a specific TLD for international stuff. Similar to how country calling codes work; all numbers are national unless you use "+something" or "00something". So companies would have "home advantage" with their domain names because users from their own country wouldn't need the international TLD.
(Yes, there's issues and things to think about if things were done that way, and I can certainly make this message longer, but everyone everywhere is already used to how things work now so there's not much point.)
There's a similar "issue" with IP addresses (which are controlled by North American IANA (which is controlled by North American ICANN)), but in that case it's easier to solve because they are more invisible, not something the common person deals with daily.