En faisant comme tu le fais, tu demandes au navigateur (à travers XHTML) de forcer le redimensionnement de ton image. Il ne serait pas surprenant que certains navigateurs le fassent mieux que d'autres (avec des algorithmes plus fins et plus respectueux de l'image, je pense notamment à Safari qui soigne beaucoup le rendu...).
Pour de la photographie je ne recommande pas cette méthode - à moins de se placer dans le cas d'un aperçu rapide d'une grande quantité d'images, où la vitesse prime sur la qualité de rendu...
En revanche, si tu réalises cette opération en php, tu auras le plein contrôle sur l'algorithme choisi pour redimensionner l'image et tu pourras donc choisir celui qui offre le meilleur rendu (et il est certain qu'il sera meilleur dans presque tous les cas).
EDIT : il faut préciser aussi que ta méthode ne modifie en rien l'image, il n'y a donc aucune réparation à faire, l'image haute déf est intacte. En revanche, le redimensionnement via php te fera créer d'autres fichiers image (soit à la volée, soit dans des fichiers distincts).