Totally agree, but there's a lot more nuance here. Giving each friend an account on my server would require it be exposed to the public internet which is difficult to manage securely. And SSO doesn't really make this very convenient because that means everyone would have to sign in and sync to everyone's servers which is a lot of work for the user. It's a UX problem.
The solution as I see it here is services that can interoperate and sync files across hosts. So, my friend's Alice and Bob can both have their photos synced to a separate server and can choose which photos to share to my server. Separate but connected.
Thanks for reading and for your comment!
This could all run on one of those $130 N150 minipcs that uses like 8W and could run 24/7. It's a lot of integration work, but there's no reason why it couldn't be a fairly off-the-shelf product.
Beyond that, the "how do I talk to other people if it's on my server" thing is generally solvable. Give them an account on your server. Don't want to need to make an account on every friend's server? That's why we have SSO technologies. I don't think. Self hosting and community collaboration need to be incompatible.