Это по идее разные немного вещи. indexeddb - это данные, а sw кеш - это про запросы. Если говорить в рамках получения данных, типо json от ручки, то использование кеша в sw просто дает возможность единую точку входа организовать в ответе fetch или xmlhttprequest без логики на js.
это все понятно, только непонятно зачем это делать и чем логика на жс плоха. с кэшированием на клиенте без управления сервером можно знатных дров наломать. например если сервер будет возвращать ошибку из-за потухшей авторизации, а мы вместо разлогина покажем данные из кэша)