Just a small contribution -
I don't think there's a solution, because there's no actual problem. That's just the way Internet works at the moment, and it's a big mess.
The "actual" solution will be finishing the transition to IPv6 which will remove the need for NAT and NAT traversal. But that's not going to happen any time soon.
For now, both developers and end-users need some level of understanding of networking technologies, to work around the limitations and be pragmatic to find suitable and acceptable options.
Some platforms or big developers make it seem easier by solving some of the problems via their infrastructure, but in the end making a small online multiplayer game remains difficult