Tai uma briga boa.

Como sou muito old school, prefiro SQL - lembrando ainda que trabalhando direto no SQL voce pode fazer umas magias negras, como determinar o indice que deseja utilizar em uma pesquisa, indices que nao devem ser utilizados, criacao de tabelas fantasmas, views otimizadas, nested subqueries, stored procedures e triggers para agilizar funcoes e por ai vai.

Alias, otimizacao de SQL eh uma escola a parte - depende tantos dos dados, das tabelas, dos indices, das tablespaces, um bom DBA consegue fazer coisas bem sinistras.

Mas tambem eh verdade que 80% das queries sao arroz-com-feijao - o problema justamente eh que nos 20% restante ficam as queries cabeludas.

Como fica ? Meus dois cents:

ORM para o dia-a-dia, entregar o sistema o mais rapipdo possivel (e garantir a papinha das criancas ou o pack de cerveja dos marmanjos)

Quando chegar naqueles pontos-chave, ai da uma parada, respira fundo e faz o SQL na mao e compara com o gerado pelo ORM e usa o que for mais performatico - porque ninguem merece sistema lento por preguica do dev.