The problem with, say Ubuntu, packaging a lot of open source software without contributing upstream is that Ubuntu doesn't just package the software unmodified, they make changes to add desired features, fix bugs, and get different pieces of software to integrate better. But, since they don't contribute many of their changes upstream, the upstream developers will change the software without any regard for whether the downstream Ubuntu patches, so if the Ubuntu people want to pull in a new version of the upstream code, they also have to update their patches. As Ubuntu introduces more and more patches, they do more and more work maintaining their local branch of the software, until it gets to the point where they are expending as much effort as if they'd just wrote things themselves. For Ubuntu, this is most pronounced with GNOME, Canonical was not involved enough in GNOME development, so the GNOME guys went off and did their own thing while Canonical developed Unity. Now you have two frontends to GNOME, but the Ubuntu guys can't get certain upstream changes made, because upstream doesn't care about Unity, only GNOME shell, which means more work for Ubuntu developers.
It's true that if you don't need to patch anything, then there's really no incentive to contribute, but when you *are* going to make modifications then you're in the situation Zemlin's talking about; it's almost always in your self-interest to get the changes merged in upstream. It's a little bit of extra work in the short-term that saves you effort in the long run.