Я использую Hibernate и Hibernate Search и, не глядя на базовую реализацию, могу сказать, что они определенно не возвращают все результаты. Я реализовал тот же запрос, возвращающий все результаты, а затем изменил его, чтобы задать первый результат и максимальные результаты (для реализации разбивки на страницы), и прирост производительности был огромным.
Они, вероятно, используют для этого специфический для диалекта SQL, например, LIMIT в MySQL, ROWNUM в Oracle. Ваш менеджер сущностей знает о диалекте, который вы используете, так что это просто.
Наконец, если вы действительно хотите проверить, что SQL Hibernate создает для этого запроса, просто установите для свойства "show_sql" значение true, когда вы создаете свой менеджер / фабрику сущностей, и он выплевывает весь SQL, который он запускает, на консоль.