Non è una funzione ricorsiva vera e propria, perché non è lei a richiamare se stessa, ma delega la chiamata al caricamento (o al fallito caricamento) di ciascuna immagine. È quindi completamente diversa da un ciclo o da una funzione ricorsiva propriamente detta... e soprattutto è asincrona per quanto riguarda l'esecuzione del resto del codice js, che non attende certo che tutte le immagini siano caricate.

P.S.: io non conosco il contesto in cui la inserisci, quindi non so di preciso quali funzioni stai chiamando... e perché ti va in loop... Dovresti fare qualche aggiustamento in base al contesto. Ma il principio resta valido, perché, ripeto, non è una funzione ricorsiva... Se vuoi una definizione... è una funzione ricorsiva "triangolare" asincrona...