Моим первым инстинктом в обоих случаях было то, что они были злобными хакерами.
Однако в случае синглтона я думаю, что вы могли бы обоснованно утверждать, что в языке, где константы enum являются объектами первого класса,концептуально нет разницы между синглтоном и перечислением только с одним значением.Я все еще не уверен, что на самом деле использовал бы эту технику, тем более что шаблон синглтона довольно непопулярен по другим причинам.
Использование enum для служебного класса труднее защищать.Нет никакой концептуальной причины для того, чтобы набор утилитарных методов был выражен как перечисление (возможно, нет никакой причины для того, чтобы они были выражены как класс, но это совсем другая дискуссия).Кажется, единственное оправдание для реализации служебных методов таким способом - немного сэкономить при наборе текста, игнорируя установленные соглашения.