This debate comes and goes. Linus' point on scalability has merit. So does Ben's point on self-motivation. Dirk's point, however, is one I especially feels gets lost in the smoke, as this write-up seems to confirm.
On one hand: the kernel community is all up in arms about stuff being out of tree and keeps on lecturing everyone about how it's important and easy to get things upstream -- the recent issues with Android are but one example. On the other hand: when the barbarians are at the gate patches in hand it sure looks from the outside that they often get the boiling oil treatment.
For my part I think that a certain level of commitment is required. I also think that that also means a lot of very interesting stuff will get dropped for all kinds of reasons (patch ain't good, maintainer won't stick around, subsystem maintainer couldn't care less, etc.) Sometimes I think this would be simpler if the truth was acknowledged:
- The kernel developer community is a relatively closed club (per Linus)
- Getting your code into the kernel is hard; and the more interesting, the harder it is
IOW, there is no free lunch. If you want to benefit from your code being maintained in upstream, you have to be able to afford paying developers to maintain it there. Open source is great, but the laws of gravity still apply.