Earlier quoted context omitted.
Wow. I'm surprised they don't do this on the component level. When I was working in embedded, I considered software debouncing a lazy hack. I'd rather sanitize the data before it hits software.
It looks like he keyboard state is read by the driver, rather than the keyboard sending the state to the OS. How would you denounce on a hardware level with such a setup?
But if you want to reduce hardware cost, you can eliminate many capacitors and resistors by doing it in firmware instead.