смотрите. это просто два разных подхода к работе с данными. либо использовать прослойку, которая возвращает вам список значений (ну, например, дай мне всех пользователей с таким-то списком айдишников, или такими-то именами). То, что ничего не найдено - это не ошибка. Это результат поиска. Ошибка это или нет - должен решать тот, кто принимал решение о поиске.
Второй варианта - это когда модель сама себя ищет. Например, дай мне юзера с таким-то айдишником. В этом случае уместно возвращать 2 значения. Сам результат и ошибку.