Я использовал ORM в некоторых проектах (Hibernate), а не в других. Ограничения ORM такие же, как и для всех абстракций, вы отказываетесь от некоторой гибкости и должны вкладывать средства в изучение специфики реализации. Однако вы, как правило, получаете эффективность кодирования, уменьшаете дублирование, централизуете конфигурацию и получаете другие улучшения, характерные для реализации. Обратите внимание, что переносимость базы данных не всегда без усилий - очевидно, нет, если вы используете специфические для поставщика функции.
Вы не упоминаете, имеет ли ваш проект реализацию доступа к данным. Если вы начинаете с нуля, то размер базы данных не должен вас сильно беспокоить, поскольку ORM на самом деле должен сэкономить вам большую базу данных с точки зрения эффективности и уменьшения дублирования. Однако, если вы планируете заменить существующую реализацию доступа к данным и не предвидите, что база данных сильно изменится, ваши усилия почти наверняка перевесят преимущества.
Кстати, я подозреваю, что примеры приложений используют небольшие базы данных, потому что они меньше создают, а пользователям легче понять примеры, а не потому, что разработчики считают, что их решение ORM подходит только для небольших баз данных