I like p2p for the following reasons
Communication should work for two isolated nodes in a cave or on some planet in Andromeda.
It is the only fully permissionless way to communicate.
That being said. None of it is real. You can't actually connect any two devices without permission unless you are basically close enough to talk.
So when I say peer-to-peer I always mean it very loosely. Or should I say specifically. I mean that if you can get data from node A to Node B then that should be all that the protocol requires. I shouldn't care about how that happens.
I also shouldn't worry about any intermediary being able to sniff or spoof the data. They can deliver it... or not. You can't alter that.
This is partially why I am going with sending metadata only packets. Node A sends some encrypted packet to Node B. Who cares what is in it. That is up to the application to care about.
If you want more data, tell the other node a filehash in your notification packet and then they can ask anyone for it. Who cares where it is cached? It is just a blob of encrypted meaningless data.
Of course since you get a whole packet to state your case for doing whatever actions the application is capable of, no reason not to just stick your 1024 byte tweet in there instead of downloading separately.....
Anyway. I agree that the actual topology that you end up with is client server, but I still think it should work on a local network as well.