Вы вступили в религиозную войну здесь, но мне кажется, что ваша идея имеет свои достоинства. Пока есть Singletons, я думаю, было бы хорошо, если бы компилятор и JVM могли обеспечить их атомарную единственность.
Проблема в том, что синглтоны стали противоречивыми, потому что они подвержены злоупотреблениям. Люди, выступающие против их использования, указывают на секретное глобальное состояние, скрытые зависимости и массовое злоупотребление.
Ничто из этого, конечно, на самом деле не присуще понятию Singleton-ness, но это не меняет противоречия.
Вашему делу здесь не помогает использование Serializable, потому что, как отмечает Том, это само по себе противоречиво. Конечно, тот факт, что Serializable считается ошибкой некоторых авторов, не обязательно делает это так. Лично я им не пользуюсь, но не потому, что я думаю, что это само по себе ошибка ... Я просто нахожу, что есть лучшие способы сохранить и восстановить состояние, которое лучше соответствует потребностям моих пользователей.
Конечно, если есть память, существуют и другие интерфейсы маркеров - Cloneable, EventThreadListener и SingleThreadModel. Вы могли бы пойти дальше, если бы использовали их в качестве модели.
Между прочим, я думаю, что большинство авторов ссылаются на то, что вы называете «интерфейсом тега», как «интерфейсом маркера». Ничего страшного, но это может помочь вам найти другие мысли на эту тему.