Kernel 2.4 (Or actually: kernels before the new 2.6 development model: around 2.6.5?) were
examples of packages that required large ammounts of patches. Their release cycles were very
long. The latest stable kernel simply didn't support latest hardware. A distribution had to
backport many drivers just to support the latest hardware. And if you backport drivers, you
eventually have to backport some other useful features.
Indeed the fix for that was an upstream change of the development model.
Pushing upstream is the right thing to do (in the long run) for the downstream package
maintainer, as maintaining a difference means more work for new upstream versions. And people