with files you can set a large cache or a small cache - hard to know which is the right compromise.
(the traditional "perfect" solution is to set a pretty long cache, but include the file version in the URL - this is what we do with product images and CSS files, but only with those... we dont use version numbers for other resources. Well anyway, eTags do a very similar thing but in a more generic way, without you having to change the URL - and if the file hasnt changed, the traditional method will still cuase it to download when the cache expires)
with eTags you can set a smaller (not too small) cache, and then if the file hasn't changed the eTag tells the browser (or MS Lan server, CDN or ISP or whoever is caching) that the file you have is still valid and avoids a full re-download.
see https://en.wikipedia.org/wiki/HTTP_ETag
(note - you can use a combination of eTags and file versions - so that file versions can be used to force a download when the file changes - because the URL is now different - but avoid unnecessary downloads when the version hasn't changed, but the cache has expired)