Jak to tady čtu, tak se mi zdá, že pojem ORM je přetížený. Může mít podle různých diskutujících dva dosti odlišné významy:
1) "Full ORM" - něco, co umožní existující "programming language" objekty uložit transparentně do databáze. V tomto případě je bussines logika v aplikaci, DB je storage.
2) "query builder" - něco, co umí "databázové objekty" nějakým způsobem "hezky" zpřístupnit v aplikaci. Bussines logika je tady v DB
To jsou dva naprosto odlišné přístupy, ač základ "ORM" je u nich stejný: bijekce mezi "objekty v DB" a v aplikační vrstvě. A každý má své problémy.
U 1 jsou vešekré problémy s tím, že pokud nestačí výkon ORM a dělají se např. dávkové updaty, obchází se bussines logika. 2 je použitelné, ale zas logikou v DB spousta lidí neumí pracovat a tedy je to finančně drahé (alespoň pro některé typy projektů).
Další věc je, že málokdy je to řešení čistě 1 nebo čistě 2. To právě vede k tomu směšování význam těch dvou povahou dosti odlišných ORM. A je pravda, že to částečně řeší problémy zmíněné výše, ale vzniklá schizofrenie je snad ještě větší problém: v jednu chvíli člověk tvrdě narazí na to, že nejde udělat tlustá čára mezi logikou v APP a v DB - a z toho plyne nemožnost něco dělat efektivně, vyšší riziko chyb atd. atd.