Pour répondre en vrac :
- Oui c'est au navigateur de s'occuper des optimisations et des gains de performance. Par contre vu qu'ils ne sont pas parfaits et parce que tout n'est pas toujours équivalent, c'est au développeur web de savoir comment fonctionne l'outil pour ne pas faire n'importe quoi.
Si je devais faire un parallèle avec le SQL : les SGBDR sont très bon pour optimiser les chemins des requêtes, mais il reste qu'en choisissant une méthode ou une autre, on peut multiplier par 10 les temps de calcul.
Maintenant oui, la clarté du code, la maintenance, la lisibilité ... tout ça est très important aussi donc si les gains de perf sont négligeables c'est ce qui doit primer.
- Les gains de performance (ou pertes, suivant) sont effectivement minimes. Maintenant pour le savoir il faut faire des tests ou étudier la question. Donc autant la réponse peut être "passez votre chemin", autant la question elle est tout à fait pertinente (ou en tout cas j'ai eu la même
) et intéressante à poser.
Par contre savoir comment fonctionne le moteur derrière est important. Ben oui, même si on dit que c'est au navigateur d'optimiser les performances, le développeur est humain et il aura tendance à toujours intuitivement faire des choses "pour aider" même s'il dit se désintéresser des perf. Sauf que si on ne sait pas comment ça fonctionne .... on peut faire l'inverse.
L'idée là ce que avec la doc on sait que les CSS s'interprêtent de droite à gauche. Vos exemples de parcours DOM s'interprêtent eux de gauche à droite. Bref, les conclusions et les techniques à adopter pour aider les performances peuvent être tout à fait opposées sur certains points. On sait aussi que le navigateur créé un index sur les noms de balise, sur les classes et sur les identifiants (mais pas sur les attributs quelconques). Donc accéder à une classe est rapide même sans préciser le nom de balise (alors qu'en js, à défaut de getElementsByClassName c'est l'opposé)
- Pitié ne parlez pas de performance pour les questions de guillemet / apostrophe dans PHP. La différence est négligeable par rapport aux aléas de mesure, même sur les très gros scripts. Et quand vous avez un optimisateur type Zend ou APC derrière, le gain est virtuellement nul.