Games are a lot more complex now. A lot. A lot lot.
You had a fixed rendering pipeline before.
Now you can program parts of it, using shaders. Thats where most of the "problems" come from.
They are heavily optimized! Its just so much stuff, its kinda impossible to have everything spot on. And while they are only 2-3 different brands making gpus, there is a bunch of different hardware, generational changes.
A vendor, can also help optimize the game, before release, but even then people are screaming nVidia/amd title.... You will never make everyone happy :p