True, the kernel is a pretty strong counterexample. And the requirement to contribute back probably can be a good way of getting good cultures set up, telling a manager "we have to make the code available anyway, we may as well work upstream" is probably helpful.