From what I understand, the browsers don't really adhere to far-future expiry headers when the user manually reloads a page, instead they re-request every resource to see if it's really not expired. For resources that the server flags as immutable (upon first request), the browser won't make further requests, but instead instantly reloads the elements out of its local cache.