I'm not really a good person to explain the reasons behind this. I'm just passing on what I have learned from watching the discussions on the various discussion lists (especially the kernel and git lists)
I agree it sounds like it should improve development, but as I understand it, the actual result is that it complicates matters because you are pulling in unrelated changes with each merge. These unrelated changes may cause other problems along the way.
I suspect that how big an issue this is depends on the scope of the changes you are making.
If you are working on global-scale changes that touch lots of places, keeping up with upstream changes is more important, and just about all changes are relevant to the work that you are doing.
If you are working on a subsystem that is (relatively speaking) a small portion of the whole, then there are fewer benefits and more drawbacks.