Je pense qu'il faut éviter de faire un amalgame : ce n'est pas parce qu'on utilise un ORM que ça sera nécessairement moins propre ou moins performant ou moins robuste.
Forcément, c'est plus facile pour un âne de faire des requêtes en Linq to Entities qu'en SQL directement ou avec une procédure stockée, car l'ORM facilite ce travail de part la lecture/écriture plus "fonctionnelle" (terme à prendre avec des pincettes)
Pour autant, quand on sait ce qu'on fait, généralement on le fait bien, et on est plus prudent là dessus. Personnellement, je vérifie toujours les performances du code généré via SQL Profiler notamment.
En prenant également un peu de hauteur, il faut aussi prendre en compte le fait que stratégiquement, les développeurs de demain n'auront peut-être plus vocation à savoir faire du SQL - d'autant qu'ils seront de moins en moins des "occidentaux" - ce sera le rôle des seuls DBA, qui feront d'ailleurs peut-être surement de plus en plus de conseil au niveau des ORM.
En résumé, je pense qu'il ne faut pas jeter la pierre sur les ORM, mais plutôt participer à leur bonne utilisation par les développeurs, qui ne doivent pas hésiter à ce tourner vers les DBA.