The good reason is that GPL's requirement that I make my source code and build instructions available to my licensed customers (paid customers only, btw, if I want) doesn't actually help the original developer at all. Is he or she supposed to dig into my doc and diff my changes?
The idea that there is some wonderful "community" on GitHub and all this code just flows back into a beautiful, better place simply isn't how programming works. No one would do that.