I... uh, what? Please... learn more about hole punching before trying to engage in the topic.
Hole punching, in the context of NAT, is a technique where you establish peer-to-peer connection between hosts behind a NAT.
It does not matter which protocol you use, UDP or TCP or chuckles SCTP. If you want to establish P2P connection, you must hole punch.
The only alternative is to use relays.
>I have not, but that is not inherent to CG-NAT, is it? Any switch or other hop between you and your destination can be overloaded.
A typical hop does not need to maintain a huge dynamic state table. NAT, due to its very own temporal nature, must do so.
>destination itself can be overloaded.
Apples and oranges. Destination overload is a service problem. Hop overload is an infrastructural problem.