Saying that these kernel source tree dumps scattered around the net is proof that the GPL doesn't work is reversed logic in my opinion. If the kernel was proprietary for example then these code dumps would obviously not exist, that doesn't say that the situation is better.
You could instead look at what these source dumps do _not_ contain. Most of them do not contain any valuable new features or significant improvements, they're just hacked slightly to work with specific hardware or software. This must mean that most development of value actually does go upstream.
When a significant new feature is added to a GPL:ed piece of code by one of its downstream users, the GPL gives the ability to at least study the implementation details, learn and get inspired by it. I think that's the main benefit.