I look at some cases, such as EHEA on powerpc which is a pretty
modern driver written by not clueless folks, and wonder if they
do it because they know the IRQ is non-shared, they know their
interrupt handler is insanely simple and short, and just want to
avoid the overhead of that sti()/cli() in the caller.
All the EHEA interrupt handler does is unconditionally set a state bit
and schedule a softirq, then return.
The powerpc folks do delayed IRQ enable/disable using software state,
but perhaps these drivers were written before that.
-