" Let people store their own data, and offer API endpoints giving facebook, twitter, etc access."
That is the goal of unhosted. http://unhosted.org/ I really whish their RemoteStorage protocol would gain traction.
The locker project is heading into the same direction, although with a different approach. Posting content to Facebook et al and then recollecting it into your locker. http://www.lockerproject.org/