<quote>Or at least it requires that everything is rewritten once or twice before people accept it (like Firefox).</quote>
Spot on.
I'd suspect that the reason for the Linux kernel code churn lies in part in encouraging rewrites of existing functionality to make sure new generations of maintainers & developers have code sections they feel attached to very quickly. And it works. ;)