Squid proxy refusing to revalidate cache when Vary header present
Solution 1:
For what it's worth, I am seeing the same issue with version 3.3.4 and it appears that this post in squid-users is describing the same problem with 3.2.1. I've noticed that it seems to work with 3.1.10 (which is installed by default with my package manager).
By analyzing the logs I was able to determine that the hash lookup key used during the store (i.e. the initial request) is different than the one used during the subsequent requests. This is why the subsequent lookups are cache misses.
Armed with this information (additional search criteria) I was able to find this bug report that describes the issue. The bug is unresolved.
Hope this helps!
Solution 2:
It was indeed a bug, as of now it is fixed, more information on Squid's bugtracker.