This is because Chrome still resurrects service workers:
https://bugs.chromium.org/p/chromium/issues/detail?id=971571 https://github.com/w3c/ServiceWorker/pull/1415
registration.unregister() may only "mark a service worker as deleted". That is because the unregistered service worker could still be the controller for a page, and the worker will stay around until that page is closed or another service worker claims to be its controller. Resurrection is (was) a feature that, if you unregister a service worker and then register the same worker again while the old one is still around, it won't actually register a new service worker but rather resurrect the unregistered worker.
On a general note, I'd recommend to always use a unique name for the service worker (e.g. the hash of the JS file), which works around this bug in Chrome and also ensures that you don't run into caching issues.