Hola Eduardo!
Es esa la razón, sí. En este caso, los parámetros son retirados del stack al comienzo de la función, por lo cual en ningún momento de la recursión se encuentran al mismo tiempo, en el stack, los parámetros de 2 llamadas recursivas diferentes.
Este es un buen ejemplo de que para estos ejercicios no hay que seguir una receta sino ejecutar el código a mano y verificar qué es lo que se agrega o quita en el stack. Habiendo dicho eso, la estrategia de comenzar la función realizando pops, si bien puede realizarse en ocasiones (cuando no se solicita que se preserven los parámetros), puede llegar a complicar la programación y el cálculo del stack, como en este caso.
Saludos,
Federico