Thanks for raising that.
Oddly enough, I /partially/ agree, but why spend cycles and invest delelopment time on something occasional. and largely unnecessary with modern fast micros?
Which raises an important point about polling vs interrupts - interrupts are now, while polling is soon, so the ‘main() loop period’ vs ‘interrupt latency’ is a very convincng argument that needs to be considered.
I also did what you suggest n the past, but on hardware with more interrupt handling resources, and probably still would if using those platforms.
There is a sweet spot between hardware optimisation, and code performance, but that’s somewhere beyond this discussion and most small-system hobby coders.
Good point though.