Любую рекурсию можно заменить на цикл, в цикле все статично - прыжок всегда в одну точку, требуется только переменные-параметры, которые можно хранить в стеке, в случае рекурсии стек забивается параметрами функции, адресом возврата, старым фрейм-регистром стека + локальные переменные внутри функции и так на каждый вызов... Думаю очевидно, что рекурсия не инструмент богов, а ламеров...