図の f(x) はよく例に出される xの階乗を計算する関数ですが、fの中で分岐があり、 (a) x==1 の場合 1 を返す、 (b) そうでなければ x * f(x-1) を返す ということで、(b)の場合自分自身を呼び出しています。 これを再帰なしで書くとその下の f1() f2() f3() のように展開できます。 ここで問題なのが f() の中のローカル変数 i です。 このローカル変数 i は、f() の呼び出しごとに別ものになります。 何を言ってるかわからないと思いますが、再帰無しで書いた f1 f2 f3 のそれぞれのローカル変数 i がそれぞれ別ものであるのと全く同じように、f(3) の時の i と f(2) の時の i と f(1) の時の i は別ものになるのです。