Hi Danny,
You’re right. Common implementations (e.g. Angular Service Worker) notify the browser of a successful installation after updating the cache. They maintain a hash in the name of each versioned file, which enables them to fetch only the changed file(s) during installation. I’m not sure if workers can keep a track of what has already been downloaded (and if there’s enough motivation to do so), given that they cannot communicate with any browser storage APIs directly.