I strongly disagree with this stance as I don't think 404 is ambiguous at all. Although it would be useful to know at what point in the broader hierarchy of a specific resource requested the unavailability starts: Ultimately 404 just means the specific 'tip of the spear' resource requested is not found.
Got 404, returned body is json, returned body is an error object, good to go.
Oh and, by returning a 404 you help intermediate caches know that they should not cache the response.
I kind of get this and wouldn't complain about an API doing this, but I also wouldn't be surprised for `/api/v1/posts/abc-123` to return 404 because the route handler couldn't match the post ID.
I took it to mean 404 should mean you haven't hit the API at all.