Есть ли порог когда использование ОРМ становится неоправданым/оправданым? Где он?
Чаще всего он становится неоправданным из-за слишком высоких накладных расходов.
Пример:
User MANY_TO_MANY Group
User MANY_TO_MANY Category
Нужно найти все категории, по заданному списку групп пользователей. В случае Doctrine ORM вам придется загрузить список груп, дальше циклом пройтись по всем пользователям (если загрузка ленивая - это куча запросов), дальше уже по всем пользователям пробежаться и вытянуть все категории, плюс убрать дубликаты. Тут лучше plain sql, или query builder, как вам больше нравится.
В случае же когда, накладные расходы не высоки И ORM будет более удобной - стоит юзать ORM. Например: у вас уже есть загруженный пользователь, хотите достать все его группы. В случае Doctrine ORM это может выглядеть как:
$user->getGroups().