Desnormalizar tabelas não é gambiarra. Não sei como orientação a objetos ou Hibernate vão te salvar a fazer relatórios em bases de dados imensas. Um map-reduce até vá, mas o banco já tá satisfazendo todas as outras milhares de necessidades da empresa, menos a tua.
Eu também adoro um design limpo, compreensível, tudo lindo, mas também tem horas que é preciso escovar bits. É feio, é chato, e não é POG.
O que digo é para não demonizar essas práticas. Não estou falando de desnormalização como se fosse normal, ela é certamente a exceção, perto do último caso, mas também não a demonize. É bem capaz de não precisar chegar no última caso, talvez seja viável esperar 6 horas para que o relatório de um mês esteja pronto, e você tem que gerar 2 anos destes.
[/advogado do diabo]
De qualquer forma, também tenho que concordar contigo que design bom, além das milhares de vantagens, também é zilhões de vezes mais performático que design ruim. O que mais ouço por aí são casos de queries que demoravam 24 horas para terminar, que depois de uma refatoração foi para 15 segundos(moral da história, query builders geralmente são um lixo), e de empresas que tomavam prejuízo na casa dos milhões por não fechar o billing do mês, e que hoje o fazem em 6 horas (moral: contratar os melhores profissionais do mercado sempre sai mais barato).