Du bist nahe dran. Der wahre Grund ist, dass moderne Tastaturen die Matrix selbst mit einem Tastaturprozessor auswerten und fertige Scancodes an den Computer schicken (andernfalls bräuchte man wesentlich mehr pins und ordentlich dicke Kabel :D). Selbst wenn die Tastatur also alle gedrückten Tasten erkennt hat der vice oft keine Chance, daraus auf den tatsächlichen Zustand der zu emulierenden Matrix zu schließen, es kommen ja nur nacheinander Scancodes der Tasten an. Vielleicht hat er ne passende Heuristik, wenn das schnell genug geschieht ... setzt dann aber voraus, dass die verwendete Tastatur wirklich alles erkennt.
AT- und PS/2-PC-Tastaturen senden nicht nur einen Scancode beim Betätigen der Taste (Make-Code), sondern auch einen beim Loslassen (Break-Code). Der Rechner kann also problemlos feststellen, ob gerade Tasten schnell hintereinander oder gleichzeitig betätigt wurden. Bei USB geht das nur begrenzt, da in dem dafür (fast) immer verwendeten vereinfachten Protokoll alle aktuell gedrückten Tasten in einem Datenpaket gemeldet werden und dessen Grösse beschränkt ist. IIRC war das Limit bei 7 Tasten, ob der Controller in der Tastatur es auch ausnutzt ist dann noch das zweite Problem.