На мой взгляд:
Мы говорим здесь о значениях статуса http, и должны иметь более высокий уровень предоставления ответов.
Это нужно видеть в слоях делегатов. Например, если ваш API не может ответить на запрос, если сам вызов API недоступен, вы можете ответить 404.
Но когда ваш вызов существует и он может ответить набором данных, но это пустой набор, вы можете вернуть только http 200 с пустым результатом.
Я бы использовал значения статуса http, чтобы указать индикацию проверки запроса, а не напрямую зависеть от содержимого в более глубоких слоях API.
Или можно строго следовать протоколам, найденным в сети, но никто не следует им ...