ORM не очень хорошо работает исключительно потому, что объектная модель данных плохо ложится на реляционную. И проблемы тут принципиальные, на уровне математики. Все мечтают иметь плюшки документных баз данных и реляционных одновременно.
Ну, ОРМ хорошо работает, пока модель данных ложится на реляционную. Какие-то простые выборки. Когда не ложится, используются микро-орм, где в основном только маппинг и простая вставка или совсем raw. Мы так делаем. Удобно.
+ У нас ОРМ, которая сразу и миграции поддерживает из коробки. В монстра всё это не превращается. Я лично был против ОРМ на проекте, но когда внедрили, стало только удобней. Как-то так.