Not to mention the average developer. I just spent the past few days wrangling NAT-punching issues for a small p2p project of mine. To say "the first rule of p2p is don't do p2p" is an understatement.
The (very unfortunate) truth is that p2p is just more difficult than client/server.