You make an interesting argument, which is slightly wrong and completely irrelevant.
It is slightly wrong, because the circular keyboard buffer has the capacity of 32 bytes, which suffices for 16 keystrokes, each represented as SCAN + ASCII.
It is completely irrelevant, since modifier keys status is kept in bytes 417h and 418h. Instead, when a modifier + regular key combination is pressed, ASCII is 00h and SCAN reflects the combination.
Thus the necessity to redirect INT 9 interrupt if handling modifier key events alone is required.