I dont see a problem - browsers should honor the expiration time and choose the cache copy if it's still valid.
It's up to the server to use proper headers. Why say a file is ok to cache for years if it actually isnt? If the same url will change content then use shorter cache times or require active revalidation and/or etag checks - or just use the typical cache busting querystring parameters.
This "immutable" flag is unnecessary.