Не забывайте, что 404 также может технически раскрывать информацию. Например, вы могли бы сказать, у кого не было adminnotes. В зависимости от обстоятельств это может быть так же плохо, как указание на то, что ресурс существует.
На мой взгляд, ошибки не должны лгать. Если вы дадите 404, то всегда должно быть так, что ресурс не существует.
Если вы имеете дело с конфиденциальной информацией, то вы всегда можете сказать, что у пользователя нет разрешения на ресурс. Это не обязательно требует наличия ресурса. Клиент может не иметь права даже знать, существует ли ресурс. Поэтому вам нужно будет предоставить ошибку отказа в разрешении для любой комбинации /adminnotes/.
Тем не менее, официальная спецификация, похоже, не согласна, вот что говорит официальный rfc об ошибках в http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
10.4.4 403 Запрещено
Сервер понял запрос, но отказывается его выполнить. Авторизация не поможет и запрос НЕ ДОЛЖЕН повторяться. Если метод запроса не был HEAD и сервер желает сообщить, почему запрос не был выполнен, он ДОЛЖЕН описать причину отказа в объекте. Если сервер не желает предоставлять эту информацию клиенту, вместо него можно использовать код состояния 404 (не найден).
10.4.5 404 Не найдено
Сервер не нашел ничего, соответствующего Request-URI. Не указано, является ли состояние временным или постоянным. Код состояния 410 (пропал) СЛЕДУЕТ использовать, если сервер через некоторый внутренне конфигурируемый механизм знает, что старый ресурс постоянно недоступен и не имеет адреса пересылки. Этот код состояния обычно используется, когда сервер не хочет точно указывать, почему запрос был отклонен или когда другой ответ не применим.
Я не эксперт, но я думаю, что глупо давать "не найдено", когда ресурс может существовать. Я бы предпочел «запрещенный», без гарантии, что ресурс существует, подразумевая, что вам нужно будет как-то пройти аутентификацию, чтобы узнать.