Note that player-hosted servers still count topologically as "p2p" and has NAT issues.
I disagree, actually.
For me, there are two hallmarks of a peer-to-peer architecture. The first is that every machine has a connection to every other machine, and the second is that each machine is equally authoritative as to overall game state as every other machine.
The latter is a matter of game architecture, but the former is definitely network topology.
The client-server network topology also makes some things dramatically easier. Consider the simplest possible case where the topology would differ. We have three players, Bob, Ted, and Alice.
It is quite possible for it to be the case that Bob has a great connection to Ted, and Alice has a great connection to Ted, but latency or packet loss issues make Bob's connection to Alice dubious. This case happens often enough that, if memory serves me correctly, at least one of the Age of ____ games would do its own routing when it detected that circumstance (moving the direct connection between Bob and Alice into a connection routed via Ted) .
In a true client-server network topology, it wouldn't matter, as all network traffic is routed via the server anyway, with no direct connection between Bob and Alice, making it much easier to find a game in which all players will have a good network connection.
It does of course still have NAT issues, but that hasn't been an unsolved problem for over a decade.