Нет, наоборот - обработку каждого пункта - состояния - в свою подпрограмму. А вызывать их из единого "диспетчера". Подпрограмма всегда возвращает после себя новое состояние автомата. Никаких goto - упаси боже.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)