Usually, tree shaking is a determining process, this means that for the same lib version, the code that is unused will be always removed.
So, it is affect the long term caching only for the first time you apply it.
If your code start using some unused function, this will invalidate the cache.
Pay attention that this cache is usable for the second visit of the user, but smaller vendor chunk is useable from the first visit!