It's really not much of an issue as long as at least one peer has a reachable IP. I sometimes wonder how many people are under the impression that NAT's are a showstopper. This is simply not true. The showstopper is probably the RIAA and MPAA.
Skype slipped under the radar because they branded themselves as VOIP not file sharing. But it's really no different. It's peer to peer data exchange.
Only if both peers are behind the same NAT does the NAT pose a problem, in which case an external "supernode" is needed. But that's easy to set up. And it does not need access to packet payloads.
You could do a paid app. But the code to accomplish the job is very simple and has been made public in various forms multiple times.
File sharing copyright concerns, monitoring communications to catch bad guys and all that stuff is what's holding this back, not lack of a solution for connecting through NAT's.