Supposons que tu ais une seule led a allumer et qu'elle ait besoin de 80mA pour fonctionner (tension à ses bornes de 2V). On ne peut pas l'alimenter directement par l'Arduino car le courant est trop important. On va donc avoir recours à un transistor. On utilise pour cela aujourd'hui deux possibilités: le transistor bipolaire ou le transistor MOSFET. Si je prends la première solution, voici ce que j'obtiens comme schéma:

Prenons celui de gauche.
en fait les LED sont alimentées en permanence en 5V et c'est une tension
négative nulle (0V) qui pilote les LED au travers
de l'ULN2003 du transistor.
Le transistor permet ici de pouvoir laisser passer les 80 mA. Quand la sortie passe à l'état haut, un courant de quelques mA passe dans la résistance de base et permet à un courant plus élevé de passer dans le transistor, et la led va s'allumer.
C'est le montage hyper classique.
Maintenant si au lieu d'une diode de 80mA, j'en ai 4 mais qui consomment 20mA chacune, chacune avec sa led, cela va donner

Le courant I est le même, on a quasiment rien changé.
Si au lieu d'avoir un seul paquet de leds, j'en avais 5, pris sur 5 sorties différentes, il suffirait de répéter 5 fois le même montage. Pour économiser la place, au lieu de prendre 5 transistors discrets (=chacun dans son boitier), je choisis un réseau de 5 ou 7 transistors dans un seul boitier (ULN2003), cela fait presque le schéma que tu as. Pour alimenter des leds, la tension d'alimentation ne vient pas des transistors, elle vient du 5V côté anodes des leds.
En branchant la borne 9, cela rajoute une piste qui va relier des diodes (une par transistor) entre le 5V et le collecteur:

Le courant ne peut passer que dans le sens de la "flèche". Or on a 5V en haut et on ne peut pas avoir plus de l'autre côté. Il ne passera jamais rien dans cette diode. Qu'elle soit là ou pas n'a strictement aucune importance. Sauf si il avait fallu l'acheter, mais dans dans notre cas elle y est déjà; c'est juste une piste en plus.
A propos du choix du circuit, il y a effectivement plusieurs solution:
- 5 transistors+5 résistances de base: c'est plus cher, plus encombrant qu'un uln2003
- réseau avec des MOSFET: cela existe par exemple le CD4050, cela va jusqu'à 120mA
- réseau avec des bipolaires: c'est le uln2003
Maintenant si on compare le CD4050 et l'ULN2003, le premier ne va que jusqu'à 18V et 120mA, est plus rare, le deuxième est usuel, permet 500mA jusqu'à 50V. Cela explique pourquoi le choix de l'uln2003 est souvent pris (du coup, on en vend plus et il devient moins cher). C'est vrais aussi que l'on peut mettre un moteur dans avoir à rajouter des diodes avec un uln2003.
Je pense que le choix est le bon.