You cache negotiated responses[1] using the Vary header[2]. PageSpeed does rewrite URLs in the HTML, it just isn't needed in this case.
[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13...
[2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14...