Во-первых, все заголовки кеширования это лишь «настоятельная рекомендация». Браузер всегда может запросить любой ресурс по любому поводу.
Во-вторых, обновление страницы при помощи F5/Ctrl-R это не то же самое, что простой переход с другой страницы или из адресной строки. Когда вы жмёте «перезагрузить» браузер считает, что вам очень нужна самая свежая версия и добавляет некоторые заголовки в запрос, а также принудительно перезапрашивает закешированные данные.
Но при этом, в-третьих, в запросе указывается состояние данных в кеше браузера (Last Modified, Etag, может ещё что-нибудь) и если сервер считает, что у браузера актуальные данные, он может ответить 304, что бы не зря не перезадавать данные ещё раз.