Embora a ACPI tenha começado como uma "Interface para lidar com o consumo de energia", ela se tornou muito mais complexa e também especifica outras coisas, como a atribuição de recursos de hardware.
O problema é que a especificação da ACPI é bastante complexa. Os fornecedores de hardware geralmente violam a especificação da ACPI, mas à medida que eles entregam o hardware completo com drivers do Windows, e escrevem os drivers de tal forma que os drivers lidam com os dados ACPI quebrados bem, ninguém percebe. Até você tentar o mesmo no Linux, que espera dados de acordo com a especificação, e então você pega esses erros.
Para torná-lo ainda mais interessante, os dados da ACPI podem variar dependendo do sistema operacional (há funções para a ACPI consultar o SO), mas as funções de consulta às vezes funcionam e às vezes não, às vezes tenta fornecer valores corretos para o Linux Embora continuem a dar valores quebrados para o Windows, porque eles trabalham com os drivers, às vezes dão valores totalmente não testados para o Linux etc. Você pode ver para onde isso está indo: é tudo uma grande bagunça.
Minha "melhor prática" pessoal: Ignore os erros até que algo que você precise dê errado. Nesse caso, mexer com o reconhecimento do sistema operacional, mexer com os argumentos do kernel como substituições, e se tudo o resto falhar, sentar-se, descompilar as tabelas ACPI e tentar descobrir o que exatamente dá errado. O último não é divertido.