There's nothing wrong with a hardware approach, though your reasoning is flawed. The components may seem cheap, but memory and processor cycles are far less expensive. Debouncing a pushbutton switch is inherently not a time critical application, that's why a firmware solution works.
An interesting difference between the two debounce circuits you posted: A SPDT switch can be completely debounced with a RS flip-flop, while a SPST switch depends on a time delay for debouncing.
see
https://www.e-insite.net/ednmag/contents/images/196470.pdf for some more info on debouncing SPST switches using hardware.