Про SFCInit/SFCReset см. тут.

Вообще нужда их применения – это явный признак плохо написанной программы.
В SFC программа всегда зациклена на шаге, пока не будет разрешен переход, сколько ее не вызывай. Это основной принцип SFC программирования. Нормально надо ввести в функциональный блок некую входную переменную. После соотв-го шага в переходе предусмотреть ее анализ и уход на начало или куда надо.