Cart use session, so if you have cache active, the page is not updated with user session data(cart)
This problem is same with any cart system, it's not specific to Virtuemart.
If you want use a cache you need a more advanced cache manager but this can slowdown your site, if you have to many cases to handel(because
disk writing).
So page cache should never be used for a shop, modules can in some case be cached(menu for eg., categories ...) my own category module can use a static cache that never expire for eg.(can be cleared with joomla cache handler)
Virtuemart do not use advanced caching rules, so the caching fails because session values. Eg currrency changes,language changes are value in session but virtuemart have never added this in the cache key, so you cannot add it in cache.
But other datas can change the display as promotions, stock changes, so it's not easy to write a specific cache system for a shop.