А как Singleton противоречит тому, что сервис может умереть? Представьте, что у вас есть 4 разных одноранговых копонента (они не являются родителями и потомками друг другу). В компонент1 вы инжектите сервис, редиректитесь на компонент2, в котором нет инжекта этого сервиса, потом редиректитесь на компонент 3, в котором тоже нет инжекта этого сервиса, а потом редиректитесь на компонент 4, в котором инжект есть