Yeah, speaking about decentralization… I would recommend using one default server (which will be used by all people who do not know what “server” means, that means most of population), but allow the protocol to connect to independent servers. They should be handled kinda like alternative app stores in smartphones. You connect to an alternative server, you get all the warnings, and then you choose your mode of contact-making with the alternative server: whether only you can actively seek for friends there (because your phishing resistance is zero, and you only wanted to connect with one specific person there), or whether other people can send you friend requests. (When you get a friend request, it is clearly shown that is comes from an alternative server.)
Yeah, speaking about decentralization… I would recommend using one default server (which will be used by all people who do not know what “server” means, that means most of population), but allow the protocol to connect to independent servers. They should be handled kinda like alternative app stores in smartphones. You connect to an alternative server, you get all the warnings, and then you choose your mode of contact-making with the alternative server: whether only you can actively seek for friends there (because your phishing resistance is zero, and you only wanted to connect with one specific person there), or whether other people can send you friend requests. (When you get a friend request, it is clearly shown that is comes from an alternative server.)
OK, now we just need to make this happen. ;)