Je n’ai aucune idée concernant la vitesse d’exécution (d’autant qu’il s’agit de javascript et donc d’une exécution locale, tout dépend ainsi de la machine de l’usager) mais j’imagine que plus on imbrique des éléments dans d’autres éléments, plus ça prend du temps à faire le chemin dans l’autre sens…
Concernant la répétition du script, il s’agit d’un « truc » fourni par @sam il y a 2 ans ici.