Hardware abstraction layers have evolved into very powerful interfaces that have indeed pushed differentiation up into the OS layer. It was a natural consequence of the push toward hardware standardization (ie, plug and play) and Human Input Devices (HIDs) and USB-powered items in general would have struggled without that advent. It's funny though to see Linux dragged into OS differentiation. Isn't that in opposition to the core goal?