Robert: What component of an OpenACS installation is outputting Last-Modified headers? And which one would be able to deal with If-Modified-Since? I don't see this happening at all right now. Or are you suggesting to add this instead of the Cache-Control stuff for static content?
Regarding adding .pdf, .wav, .doc: When the request processor decides if to add the cache control headers, it's not necessary to keep a list of file extensions at all, the rp would decide based on wether it is serving an actual file from the file system or calling one of the handlers, e.g. the one for tcl/adp pairs.
I agree that it should be possible for individual sciripts to override the cache handling of the rp, for example if a custom last-modified handling was to be implemented in cr_write_content it should be able to call something like "ad_conn -set rp_output_cache_control_headers_p 0" to inform the request processor that it should not add the headers.