They could have done all that in one long form with JS for client side progressive enhancement (show/ hide different parts) and that would probably be much easier.
Whenever I go debug unnecessary state machines, or have to refactor them (to compress the number if steps), I scratch my head half the time, trying to follow the string of thought that my predecessor felt so smart about.