I do agree that this is an issue. Centralized things in the Internet are always bad.
We must find a way to have decentralized (and preferably, federated) software development. I prefer them to be federated because, that way, a member of a project can join other projects without registration and without creating a clone of his account/profile (0Auth and OpenID are somehow a bad example, since they rely on existing profiles with such capabilities and just replicate information from these existing profiles to create another one, and they do not serve the purpose of pure interaction). Perhaps an identity/certificate, that is created for that person, and has an unified resource identifier or a hash of some sort. And in his very computer the user can change his profile information and send it to the projects that he's already part of. His profile could also have OpenSSH keys within it. As for the projects' repositories, perhaps we could have something that uses P2P, but which is also able to receive identity/certificate updates from the projects' members, and which is able to receive other maintenance related orders like: requests for a non-member to join the project, permission management, and so on.
