Is that really true? My understanding is most CGNs are full-cone, and keep the same external IP+port for the same source IP+port combo for the duration of the mapping. Thus, you can use a STUN server to establish a direct connection.
Certainly my ISP works in this manner, but I can't find much data about industry trends.
This is our experience running a WebRTC-based service that tries hard to do peer-to-peer when possible. It's usually possible, except for people behind enterprise (big company) firewalls.
But there is a big exception -- mobile networks. Mobile data networks don't allow udp hold punching. You have to relay the media.
Certainly my ISP works in this manner, but I can't find much data about industry trends.