tl;dr: Two optimizations that would allow writing easy code and let the compiler optimize things out are not performed, so back go manual state machines.