Original text:
The unqualified "private" response directive indicates that a shared cache MUST NOT store the response (i.e., the response is intended for a single user).  It also indicates that a private cache MAY store the <del> response, subject to any other cache directives present, even if the response would not otherwise be heuristically cacheable by a private cache. </del>  If a qualified private response directive is present, with an argument that lists one or more field names, then only the listed fields are limited to a single user: a shared cache MUST NOT store the listed fields if they are present in the original response, but <del> MAY store the remainder of the response message without those fields. </del>  The field names given are not limited to the set of header fields defined by this specification.  Field names are case-insensitive.

Reviewer comments:
NAME see revision.
The language for and indicates that they override the rest of the caching model unconditionally; as discussed in , that is too broad. Also, is often used even though the message is still cacheable, because developers misunderstand its semantics.
The text in question for private: to any other cache directives present, even if the response would not otherwise be heuristically cacheable by a private cache. lists one or more field names, then only the listed fields are limited to a single user: a shared cache [...] &MAY; store the remainder of the response message without those fields. I think there are two problems here: 1) "subject to any other cache directives present" is too narrow; the requirements in 3. Storing Responses in Caches go far beyond cache directives (e.g., method and status code cache ability). 2) The second paragraph omits any such condition. I think this can be addressed by replacing the clause above with something like "subject to the other requirements in [ref to section 3]", and repeating it in the second paragraph. We'd also need to add to the list in section 3 (probably below .
For public, we have: response even if it would otherwise be prohibited, subject to the constraints of any other response directives present. In other words, public explicitly marks the response as cacheable. Similar to above, I think it should be "subject to the constraints defined in [ref to section 3]. A note like this would also help:
LGTM.

Revised text:
The unqualified "private" response directive indicates that a shared cache MUST NOT store the response (i.e., the response is intended for a single user).  It also indicates that a private cache MAY store the  <ins> response, subject the constraints defined in response.cacheability, even if the response would not otherwise be heuristically cacheable by a private cache. </ins> If a qualified private response directive is present, with an argument that lists one or more field names, then only the listed fields are limited to a single user: a shared cache MUST NOT store the listed fields if they are present in the original response, but  <ins> MAY store the remainder of the response message without those fields, subject the constraints defined in response.cacheability. </ins> The field names given are not limited to the set of header fields defined by this specification.  Field names are case-insensitive.