La invocación recursiva también devuelve un valor pero no haces uso de él.
Es clave para la recursividad mantener el mismo comportamiento que has definido.
Además si sólo buscas valores que sean arrays o strings no necesitas un if-then-else, sólo una comparación con OR: