There's no such thing as "stock Android" from an update distribution view. Each Android release, currently, has to be custom-fitted to each given hardware model. That is the problem being solved here, and it's not the OEM's fault, it's the architectural design of Android itself, which is changing.
It's not just Android design's fault though. ARM does not have the equivalent of Bios for hardware discovery and initialization. So you can't have a generic OS image to be installed on any device.