Предположим, что вы привязываетесь к чему-то, что будет использовать свойства любого заданного объекта - вы можете очень легко передать Elvis.INSTANCE, но вы не можете передать Elvis.class и ожидать, что он найдет свойство (если только это не сделано намеренно). кодируется для поиска статических свойств классов).
В основном вы используете шаблон синглтона, только когда хотите экземпляр. Если у вас хорошо работают статические методы, просто используйте их и не беспокойтесь о enum.