With the current level of testing resources we have available, I'm fairly confident that what would happen under the system Malte proposes is that most of the non-core packages would drift backwards in maturity until they were all broken, and then those who needed them would end up having to fix them. This places a huge burden on other developers. I can say this with some authority as it happened to me some months ago; I spent many hours of my client's time making a package work again, and in the process I made it incompatible with the other develoeper's work, so if/when he commits again the same thing is going to happen. It just makes for a big mess.
Perhaps we need a separate branch, or even a separate repository, for people to place their work in progress? I'm all for sharing unfinished code, but would prefer to not pollute the main repository with it.