>>706
本当はステートパターンとか関数ポインタとか使った方がいいようなきもするけど..

まずFuncAlwaysは要らない。
逆に分岐部分を外に出した方が分かりやすい。

void Update()
{
  UpdateByState();

  // 状態にかかわらず常に実行される関数
  ....
}

「状態○○のときに呼ばれる関数」って要するに正確には○○に変わった時に呼ばれるんだろうから、
Onでも付けて、

OnFoo()
OnStateFoo()

でいいのでは?