@liw this is why it's important to separate responsibility for the layers of the stack.
HW support is *mostly* up front then, and the middle layers can be updated over time much more easily. That's where most of the SW bugs are anyway.
Not saying that's perfect though, but allows more choices. For instance on Ubuntu Phone the Libertine tool had to support chroots and LXC because some of the HW packages didn't have new enough kernels with all the namespacing features LXC needed.