Grundsätzlich mal ja.
Funktionsaufrufe sind teuer, weil man Variablen sichern muss beim Aufruf und bei der Rückkehr. Außerdem muss man die Funktion in der Funktionstabelle nachschlagen und dahin springen. Das ist natürlich relativ umso teurer, je weniger Code pro Iteration/Funktionsaufruf abgearbeitet wird :).
Die Stärke des Effekts kann natürlich variieren.
Zudem kann mancher Compiler (einfache) Rekursionen in Iterationen umbauen.
Johannes