When you deploy a new release of your software, I find it quite important to have the cache invalidated. The fact that a new file name is generated for the JS files for new Nuxt Vue.js releases, seems like a good thing to me and takes away the need to invalidate the cache manually.
If the filenames remain the same, you have to purge the impacted JS files from the cache for the updates to be pulled in by the end-user's browser.
The fact that you have a cache miss after a new release seems like a non-issue to me: Varnish only has to fetch the updated JS files once and they're back in the cache. It doesn't look like the performance penalty will be that big.
And if you want to minimize the impact even further, just pre-fetch the updated JS files as part of your post-deployment logic. That way you're sure the users are going to hit the cache upon the next visit.
I fail to understand the real issue here. So if I'm missing the point, please elaborate why this is such an inconvenience to you.