they don't necessarily have to 'join', but exchange data from their network/app to yours.
we've been sending email with user@domain between disparate email servers running on disparate OS for years - allowing for addressing and exchange of structured data with similar style shouldn't be that hard.
How can this work? Suppose you self-host a social network, and manage to convince your friends to use it. What happens to the friends of your friends? Do they also join your self-hosted social network? And their friends?
If it works at all, then it quickly becomes an intractable problem for a common user to deal with. They might as well be the next Facebook.
It seems to me like it has to be done the way Diaspora is doing it, or it just doesn't work.