Enumerationen können auch als Erweiterung von Wahrheitswerten angesehen werden.
Entweder ist etwas wahr oder falsch.
Was aber, wenn du noch weitere Zustände benötigst?
z.B. True, False, Unknown...
Oder man kann sie als Flags benutzen, um bestimmte Optionen Methode auf einfachem Wege ein- oder auszuschalten.
Oder wie Norbert Eder schon erwähnt hat, um einem Benutzer eine leicht verständliche Gruppe von Wörtern anstatt schwer zu entziffernden Zahlen.
Was ist für dich angenehmer: right, middle und left oder -1,0,1
Was ist für denjenigen angenehmer, der deinen Code später liest?
Trotzdem sind Enumerationen eigentlich nur eine Programmierhilfe, wenn auch eine der wichtigeren, über die sich nackte Zahlen in einen sinnvollen Kontext bringen lassen.