Странности работы команды millis

Вроде, тема обговорена, потому, не совсем по теме, но, косвенно, все же, может ее касаться. Хочу спросить следующее, на сколько “культурно” делать ветвления при помощи (не знаю есть ли такой термин) назову это искусственными флагами, в случаях, когда какое-либо действие из всей цепочки нужно обходить или выполнять, а по окончанию процедуры, менять его состояние, как бы, “закрывая за собой калитку”. Конечно, есть оператор CASE, но, как по мне, не всегда интуитивно понятен при чтении кода. Помню, когда изучал PIC-и по книжке, приводились подобные приемы ветвления с помощью встроенных флагов (четности, переполнения, итд) как нормальное решение. В Ардуино такое, вообще, не практикуется, только CASE, а, мой вариант это колхоз?

bool flag1 = false; //например, флаг процедуры сброса


void loop() {
  if(flag1==false){
  //выполняем сброс/очистку значений
  flag1=true; //"закрываем калитку" в ожидании следующего срабатывания условия
  }
}