If a compelling application comes along that is NAT-hostile, that
will be interesting, but I can't imagine it's in anyone's interest
to provoke such a conflict when there are well-known NAT-friendly
ways of replacing embedded IP addresses in most higher-level protocols
that use them...
Well, NAPSTER comes pretty close. Two peers can exchange files if at
least one of them can act as a server, i.e. is not blocked by a NAT. If
both are behind NAT, they can't. The point being, NAT are only
transparent if the host behind a NAT acts as a "client", and initiates
the TCP connection. Peer-to-peer applications assume that every host can
be a server.
-- Christian Huitema