Product manager here. 
I see a few issues and they’re more UX related. 

With a public/private key managed by the users, what happens when a user inevitably forgets or needs to reset their password? No server is managing it, so a lost password is a lost identity AFAICT. Identity management is a strong reason for centralization. Has this been solved in a decentralized way?
Maybe I missed a detail. How do users select the same trusted server? How is server C negotiated? And what if user A trusts C, D, E and user B trusts F, G, H?
I’m not yet convinced this solves spam. There’s the “pure spam” problem of bots blasting messages blindly to large groups. But the issue users care more about is actually bacn. Bacn occurs anywhere users direct their attention as monetization pressure accumulates.  Decentralizing servers means any group of servers can be purchased/bot netted by an interested enough party and monetized. When you decentralize, you actually take monetary incentive away from a single “trusted” authority by making the cost/value of reputation violation very low. But perhaps I’m missing something cryptographically interesting there too.