A. ACPI which is a sprawling, overengineered mess created by Microsoft, Intel, and Toshiba, and
B. ACPI-specific things like sleep and power being tested only for Windows
B is a direct result of two things: 1) crappy outsourced firmware developers, and 2) Microsoft's 1990s strategy of disallowing OEMs from offering systems with other operating systems preinstalled.
So, not really Linux's fault. If the interfaces that controlled all the laptop goodies were exposed as normal hardware (and documented) instead of gatekept behind ACPI methods that have to be written by firmware vendors that can often barely spell the menu options correct in the setup screens, then this issue would not exist.
UEFI is ACPI's successor and carries on this legacy. It's disappointing that it's seeping into the ARM world.