But how does the BIOS know whether ASPM works or not?
If it figures out from the devices, the kernel could do this, too.
Since you say the kernel can't do this reliably, I assume the BIOS authors have to hard-code this information about the devices? I guess, in theory, they should know, but it sounds pretty horrible.