Might be useful in OS kernel programming, when threads are not available. Like in IRQs, etc.
My state machines in those contexts are such beasts sometimes, when you have to account for different combinations of DMA progress/completion, etc. Sometimes the hardware limitations you need to handle in software makes you really bang your head to the wall...