Me parece bien. Lo que sería un error es que en la función principal llamás a la auxiliar con la variable resu no definida.
En realidad sobra ese parámetro pasado por referencia o la función podría ser de tipo void. O sea, la función está devolviendo lo mismo por dos vías diferentes. Alcanza con una y sería mejor tener una sola, porque mantener ambas puede provocar errores.
Respecto a considerar la lista vacía no te va a generar ningún error. Hacés una llamada de más que no hace nada, cuando se podría controlar si las listas tienen un solo elemento. Puede ser cuestión de gustos.
Por último, más arriba, cuando se mencionaba mod y div no se quería decir que hubiera que usar esos operadores. Eran referencias a lo que, por ejemplo en tu código, representan resu y d desde un punto de vista conceptual.