У него есть большой недостаток: он способствует отсутствию инкапсуляции, делая каждый компонент глобально доступным. Это может очень быстро привести к спагетти-коду, где каждый объект использует любой другой объект, вместо того, чтобы иметь короткий список зависимостей, обеспечивающих инкапсулированные методы.
Другая проблема связана с реализацией: синхронизация не нужна, поскольку компоненты Swing не являются поточно-ориентированными и могут использоваться только из потока диспетчеризации событий. Таким образом, вы должны иметь только EDT, вызывающий ваши методы, что делает ненужной синхронизацию.
Наконец, компонент может иметь только один родительский компонент. Например, если один и тот же компонент должен отображаться в двух разных кадрах, вам понадобятся два экземпляра этого компонента.