¿Se puede convertir cada recursión en iteración?

A reddit thread planteó una pregunta aparentemente interesante:

as funciones recursivas de @Tail se pueden convertir trivialmente en funciones iterativas. Otros, se pueden transformar utilizando una pila explícita. Latacad ¿La recursión se transforma en iteración?

El ejemplo (¿contador?) En la publicación es el par:

(define (num-ways x y)
  (case ((= x 0) 1)
        ((= y 0) 1)
        (num-ways2 x y) ))

(define (num-ways2 x y)
  (+ (num-ways (- x 1) y)
     (num-ways x (- y 1))

Respuestas a la pregunta(36)

Su respuesta a la pregunta