The original design of the Internet was peer to peer.
This is not some revilutionary idea. It's getting back to the original design.
Small scale peer to peer networks can still be achieved, easily, even in the presence of "firewalls", "ISP's" and "NAT".
You need a least one reachable IP address to be able to pierce NAT and "bootstrap" the network. Easy.
You need to do some simple encapsulation. Again, easy.
You need an OS with a TAP interface. Easy? iPhone denies programmers the TAP device. And any other company controlling a mobile OS could easily block your peer to peer networking capability by interfering with your access to the TAP device.
Maybe it makes more sense to distribute your peer to peer solution as part of an open source OS that will run on many hardware architectures than to distribute a solution that purports to run on all the popular OS's.
Maybe "apps" don't have to run on the OS that does the peer to peer connection. Maybe they can run "through" it instead: point your router/gateway settings at this open source OS, running on some small form factor pocket-sized computer like the Pi, and voila, you have a decent simulation of the "original" end-to-end Internet that you can use with people you know (the original Internet was among people who knew each other).