Согласен с вами полностью, но привычка как раз обратная, долгое время занимался программированием микропроцессоров, где такие штуки как раз не проходят.
Но во многих контроллерах прописывается, что переменные передаются на выходы по окончании цикла, поэтому пробую не городить лишних локальных.
Сложнее - это не быстрые таймеры, это автомат состояний на базе CASE, а после (вне его цикла) проверка на наличие ошибок арматуры (приводов, концевых выключателей). По результатам проверки некоторые выходные биты могут быть выключены (или включены).