Если бы в спецификациях говорилось, что это не может произойти, поверите ли вы им? Учитывая, что ваш код может работать против разных реализаций JPA, вы бы поверили каждому разработчику, чтобы все было правильно?
Не смотря ни на что, я буду защищаться и проверять наличие нуля.
Теперь главный вопрос: должны ли мы рассматривать «ноль» и пустой список как синонимы? Именно здесь спецификации должны помочь нам, а не помогать.
Я предполагаю, что нулевое возвращение (если оно действительно может произойти) будет эквивалентно «я не понял запрос», а пустой список будет «да, понял запрос, но записей не было».
Возможно, у вас есть путь к коду (вероятно, исключение), который имеет дело с непарсируемыми запросами, я бы предпочел направить нулевой возврат по этому пути.