I think the way it is now on head is ok, since you wouldn't want to have a typical openacs page cached, even by non-shared caches, since it normally contains a "logged in as" and maybe other information that should always be displayed up to date.
It is very annoying when a user clicks on 'Log out' and after that still sees 'Logged in as X' in the header, which I presume would happen when using Cache-Control: private.
The headers openacs sends out by default can be turned off with a kernel parameter by the way, so you can easily roll your own.