In reply to Rick Gregory.

A service worker can do more than just cache assets for offline. It also is used for notifications and background sync. Plugins and themes may need to introduce their own respective logic for integrating with the service worker to take advantage of these capabilities. Without a central service API in WordPress to coordinate the registration of the service worker scripts, then multiple plugins and themes would not be use service workers at the same time (since only one service worker can be active for a given scope at once).