Not all networks support the ability to P2P network, or, if they do, they require intervention by the user.
So you have two issues: some users will never get to use your application, and for those that could potentially, they will likely need customer support to help them configure their network correctly.
Corporate networks are the worst for this. They aren't going to change their rules for your application (yes, they might, but don't assume that starting out).
A much greater percentage of home networks can support P2P networking, but your application probably needs to support STUN as well as UPNP.
Some number of home routers won't work ever, or can if you configure them correctly. And that's where it gets messy. Is it enough to tell a customer to 'go figure it out', when it pertains to router configuration? You might get away it with PC gamers; but I'd argue any other segment of people will have no idea how to do it, and need some help. So now you have to try figure out the enduser's home router configuration as best you can remotely. Huge drain on customer support resources, which in a small startup, usually means the developers.
So why go P2P with all these headaches? Unless you have a really strong reason to do use P2P, like keeping latency down between peers, you don't bother.