Lots of interesting thoughts in this thread.
One huge hurdle to decentralized tools is, as has been mentioned, that good design for something of this scale is really really hard to do, and often requires a large team working for many years. As we see with so many open source projects, it's really hard to pull off in a decentralized way of working. And this is largely what's required for mass adoption.
The other aspect is cultural... most people just don't see the problem with Facebook (etc) and are happy to use it as their sole access point. This is due to poor literacy around privacy and value exchange, but also due to cultural conditioning that has been reinforced by the economies of the web.
If you're interested in learning about how we ended up here, I high recommend this article:
IMO, even centralized tools like Facebook could be much much better if the users were the customers. i.e. if we all paid some small amount for a subscription then the company would be more inclined to listen to people. Unfortunately in the current model we're not the customers, we're the product.
For decentralization, we also have to differentiate between the data and the tools. If we could have standards for decentralized data, where we each own our data and the rights to it, then many different types of companies or organizations could build interfaces for that data. We could allow access to the ones we want, and not to the others. We could agree to an equitable value exchange. We could participate in different level in different places, presenting different social fronts as we desire.
IMO, building the aggregators and tools is hard. Decentralizing the data based on a unified standard should be easier. But then the business model for the services must drastically change.
edit: One more thing absolutely worth reading: http://idlewords.com/talks/internet_with_a_human_face.htm