We are working in decentralised hole punching with QUIC to help enable P2P.
WebRTC provides an abundance of hole punching, but as far as I've learned, nothing gets through symmetric NAT with randomized ports.
Except for relays (TURN), which isn't P2P.