I think maybe, we need to revisit "p2p networks are cool but do not work at scale."
The reason for want p2p networks is because they handle moderation naturally.
For instance if I only see what my mutuals post or repost then I am impossible to spam unless one of my friends is an idiot. If that is the case I can easily throttle that friend.
It isn't as good as talking to nobody but it is a heck of a lot better than talking to everybody.
Of course we would like to be able to talk to anybody, but the reality is that guaranteeing universal accessibility is a logical impossibility. For instance if any particle I. The universe wanted to talk to any other particle they couldn't just due to the expansion of the universe.
There is also the problem of the number of possible connections being an exponent. No matter your architecture there is some hard scaling limit.
I propose just accepting that and keeping your local group "small" mutuals of mutuals is very nearly all I care about. Add a layer or two beyond that and you are basically back to everyone on earth.
I think p2p can be done as long as we are honest in what we can expect. Can I set up a node that handles connections from a few hundred mutuals and their average 1 post per day? Yup, not even hard. Scale that out 2 more layers and now I am at about a million or so messages a day.
Limit that to whatever fits in one packet and you are already doing better than twitter for a couple gigabytes per day.
Not great for your phone, but you can keep any message passing to your PC or a raspberry pi that you set up for you and your friends and have the phones download the subset of messages you actually view.
I am not saying it is easy, but I think it is possible to have a fairly good p2p experience as long as a handful of your friends and family are savvy enough to set up a node with a port forward and give you a small store and forward allowance.