Eu estava olhando em http://programming.lispdream.com/blog/2011/06/recursion-vs-iteration/ e vi que em sua implementação das implementações recursiva e iterativa da função fatorial, a iterativa realmente leva mais tempo dado n = 1.000. Não consigo entender o porquê (ele não explica, mas diz que é um exercício para o leitor). Sinto muito pela minha novidade em tudo isso.
fonte
Só posso adivinhar, nem tenho certeza se esses benchmarks são do código C ou SBLC. Meu palpite é que o culpado está mudando a variável. 1000! é um número bastante grande, talvez seja mais rápido preencher a pilha com intermediários e limpar do que criar uma cópia e substituir.
fonte