Let me ask you this. Does the board buffer the keyboard inputs, or does it send a left or a right immediately?
It doesn't buffer, which is a decision I made back when I was doing tryouts originally. I noticed that if you hold down a rotation input, the character keeps repeating that direction instead of accepting it as a one time press, and I noticed mame wasn't 100% accurate with what the user was pressing, so I thought why go so far as to accurately count inputs and assert that many outputs when mame will only round it off anyway.
The other issue was at the speed that a user can rotate during gameplay, compared to the amount of time the output is asserted to register keystrokes, coupled with the MAME input rounding (turning keystrokes into analog action), it seemed redundant, if I did count say 10 inputs and then go on to send 10 outputs, it would look almost like a continuous keypress anyway, plus mame would treat it as such.
So however it exactly evolved, I ended up with what I have today and to me it's optimal for what we have to work with. If you're aiming at 12:00 on the screen and you need to aim down at 6:00, you're going to twist so fast that mame sees a continuous keypress instead of 6 pulses sent. Or at least if it does see the 6 pulses, it will treat them as a long stretch of an analog motion.
If you run a game and just sit there on the keyboard pressing the rotate right key at a slow rate like once or twice a second, eventually it'll move 2 notches on one hit, or not even move at all for that hit.