In practice half-assed HID drivers by OS, badly designed OS<->application APIs, hardware manufacturers copy pasting HID descriptors from other devices, not following the standard properly, firmware bugs getting fixed with drivers instead of firmware fixes, intentional discrepancies from standard, console manufacturers reinventing the wheel has lead to the current mess.