I understand the reason for using a conservative timing for the general release. I didn't say it should be exactly 32 presses per second, nor am I presuming to know exactly what it should be as I've only tested the buttons I'm using. I think it might be good to reduce the 40ms period to something under a frame though (16.67ms assuming 60Hz), but maybe that's too low for some users with lower quality microswitches. Why not allow the user to adjust it in the U-HID configuration program so that advanced users can tweak it to their own needs, or at least release alternate firmwares on your website with different timings?
The reason I wanted debouncing removed is that I'm running my inputs through an Arduino as kind of a pre-encoder that can remap buttons for console games lacking the appropriate settings, handle turbo-fire, monitor button states for other cabinet functions, etc. I could handle the debouncing in the Arduino, and in some cases I'll have to, so I didn't want redundant debouncing further down the line.
In any case, is debouncing really necessary for everything in MAME? It emulates PCB's that were looking at raw inputs. Real cabinets didn't use encoders. The buttons just connected directly to the PCB, so shouldn't there be some debouncing built into the game code that is emulated in MAME? The only exception I can see is if capacitors were used for hardware debouncing, but I don't know how often that was used.