@feld
NAT certainly isn't.
Building P2P apps that work across NAT is complicated as hell and in most cases inefficient because you need a 3rd party to proxy the traffic for you, or a complicated UPnP to open port forwarding for you.