HTTP заголовок Expires. Почему браузер тем не менее обращается к серверу?
Когда вы обновляете страницу при помощи F5, браузеры обычно запрашивают у сервера, не изменились ли статические ресурсы, при помощи заголовка If-Modified-Since (что и видно на вашем скриншоте). А вот если вы откроете страницу заново, — закроете вкалдку, откроете новую и введёте адрес, — то ресурсы должны загрузиться из кэша, без round-trip'а к серверу.
Это такая специфика команды перезагрузки страницы, которую вы даёте браузеру.
В фаербаге помимо вкладки «Заголовки»/«Headers» есть вкладка «Кеш»/«Cache». В ней отображается информация о том где хранится объект, например, для картинки с хабры я получил:

Data Size 94797
Device disk
Expires Fri May 27 2022 00:00:52 GMT+0400 (MSK)
Fetch Count 17
Last Fetched Tue May 29 2012 00:00:53 GMT+0400 (MSK)
Last Modified Tue May 29 2012 00:00:53 GMT+0400 (MSK)

HTTP заголовки хранятся только для 1ого обращения к ресурсу — для рисунка приведённого выше я имел корректные параметры Expires и браузер нормально его закешировал.

Обязательно проверьте сниффером действительно ли браузер отправляет запрос, попробуйте тоже самое в другом браузере. Если FF — то запустите его из под нового юзера, может быть у вас изменена какая-нибудь настройка.