Hola, a mi me costó mucho entenderlo, y es mas difícil aun explicarlo, te recomiendo que busques artículos en internet que expliquen lo que son las funciones recursivas en JavaScript. Básicamente la función se llama a si misma y cada llamada se va acumulando en algo que se llama Call Stack. Cuando se alcanza el caso base (factorial de 1 = 1), las llamadas empiezan a salir de la pila de llamadas en orden inverso al que entraron, eso se llama principio LIFO (Last In, First Out). Sale la ultima en entrar y permite que la función anterior complete su cálculo, luego van saliendo en orden inverso y se va calculando el factorial.