Os padrões USB não dizem nada específico sobre teclados, mouses etc., em qualquer versão.
É o padrão HID que faz. A estrutura de relatório de 6 teclas e modificadores foi realmente realmente destinada a facilitar a vida do BIOS (para que eles não precisassem analisar os descritores de relatório), mas tornou-se um 'padrão' de fato para teclados, independentemente. No entanto, o padrão HID permite todos os tipos de relatórios diferentes, e todos os principais sistemas operacionais o suportam totalmente, portanto, não há necessidade de drivers extras.
A outra limitação é que um pacote de dados USB de baixa velocidade pode ter no máximo 8 bytes. Um relatório pode ser maior, mas isso começa a demorar bastante tempo para ser enviado. O padrão USB permite apenas que um dispositivo de baixa velocidade envie um pacote a cada 10ms (por ponto final). O sistema operacional normalmente estimula até 8ms, ou seja, 125Hz (sem hacks). Levar até 16ms para pressionar a tecla do host seria uma porcaria! Portanto, tivemos uma fase de fabricantes tentando obter mais proveito dos chips de baixa velocidade do que eles realmente podem suportar, com truques como vários pontos de extremidade etc. :(
O USB de alta velocidade libera essas limitações. Cada pacote pode ter 64 bytes e pode ser enviado a cada 1 ms (novamente, por ponto de extremidade). Isso permite que o padrão HID seja usado em todo o seu efeito.
Finalmente, o NKRO não é feito apenas para o efeito. Fazer NKRO completo requer apenas um bit por chave, em vez de um byte, e não precisa tratar os modificadores como um caso especial. Assim, um teclado pode enviar, por exemplo, 104 teclas em apenas 13 bytes - usando o outro esquema, 13 bytes gerenciam apenas 11KRO (11 teclas + modificadores + um byte reservado). Claro, ainda há muitas chaves, mas é um método muito menos elegante (e ainda 'não-6KRO', portanto ainda pode ser incompatível com hosts idiotas).