Вроде сформулировал, по поводу использования флагов. Я не знаю, почему ты такой противник флагов. Если нет флагов, то задачи размазываются на множество состояний. Также в одном состоянии нельзя сделать сразу несколько действий, что как раз флаги и позволяют.
С флагами, что без автомата, что перед машиной состояний, что в любом состоянии автомата:
sbrc FLAGS,0
rcall Action_1
sbrc FLAGS,1
rcall Action_2
sbrc FLAGS,2
rcall Action_3
sbrc FLAGS,3
rcall Action_4
sbrc FLAGS,4
rcall Action_5
sbrc FLAGS,5
rcall Action_6
sbrc FLAGS,6
rcall Action_7
sbrc FLAGS,7
rcall Action_8
И нисколько флаги не раздувают количество состояний автомата. Увеличивается гибкость, но не количество состояний.
В случае же использования машины состояний это будет выглядеть примерно как-то так.
State_1:
rcall Action_1
ret
State_2:
rcall Action_3
rcall Action_5
rcall Action_7
ret
State_2:
rcall Action_2
rcall Action_3
rcall Action_6
ret
State_2:
rcall Action_1
rcall Action_4
rcall Action_8
ret
State_2:
rcall Action_1
rcall Action_2
rcall Action_4
rcall Action_6
rcall Action_7
rcall Action_8
ret
Но гибкости в этом случае нет, так как автомат за раз делает только одно действие.