this is going to be an unpopular opinion, but this was the inevitable result of changing a function with trivial cost and broad social utility (name registration) from a public service to a commercial one. at the time we heard a lot of standard arguments about the innovation and competition that only a market based solution could bring. its really not a surprise that this is the kind of innovation that resulted.
How would that help? The government could still block domains registered by people in adversarial countries.
Personally I would not want the US government controlling and micro-managing who gets to have a .com domain.
Yes - domain registries should be run by the government.
DNS etc can be run by third parties