Some IAPs are silently sabotaging p2p protocols: for instance, by default, in my country, with my IAP, only a limited range of the TCP/UDP ports is available on a dynamic IPv4 address. The p2p signaling server (tracker), won't be able to guess that the port it allocates for a peer is in this range then working.
More than a bumpy ride.
But I guess it depends heavily on the design of the p2p protocol (presuming UPNP availability).
But my IAP is providing, by default, unlimited full native IPv6.