С того, что синглтон, глобальная переменная и изменяемые данные в классе - это птицы одного полета. Антипаттерны, которые можно применять только как временное решение. Среди очевидного недостатка - невозможность поменять единтсвенный экземпляр на два, когда в будущем придется поменять код. Вместо того чтобы менять что-то в классе лучше выделить единую сущность и через фабрику её везде инжектировать