I've thought about this a lot before and the main issue is context isolation and supporting other apps with service works.
generally service workers can do almost everything on a single domain, but once you start getting into sub-domains things get really complicated and or impossible
