I think it actually is working the way I had expected. The source of my confusion was two things:

1. When previously cached fresh items are displayed, firebug displays the headers from the original request when it was cached.

2. Firefox will re-validate on a refresh.