Throwback for HFS 2.3 has used headers like these:
main
{.add header|Cache-Control: public, max-age=200.} and this <meta http-equiv=CACHE-CONTROL content=PUBLIC>
error messages and upload
{.add header|Cache-Control: no-cache, max-age=0.} and this <meta http-equiv=CACHE-CONTROL content=no-Cache>
See how they are equal yet opposite? The 'mirror image' commands are necessary for the countermand/override concept to work.
This is more common with style = old-way; new-way, and in that order; so, the browser gets as far as it can go. The concept is actually the same.
For HFS2.4 there was slight difficulty in caching main page and then not caching login-name (some odd battle). And, I know that those meta tags aren't right for XHTML nor HTML5 (those metas need a wee update). Also there is no </meta> thus no /> because meta are not closable.
I got the caching to work for HFS2.4 with some experiments. Somehow, the old style %login-link%%loggedin%%upload-link% was resistant to caching (some difference), so, it didn't cache wrong login data. Would be nice if I had done that on purpose. Unfortunately, I don't know how to repeat that yet. Will investigate.
Usually there is no problem, with turning caching on--the problem is turning it off, such as for new folder (make it show) and login name (change when login) because the file-list page which should be cached (for a couple of minutes), also should change if new folder or login difference. Very puzzling!
I can report that caching headers work and that the problem of mixed data-to-cache + data-not-to-cache on the same page is not specific to HFS.