Right, because none of the other field value types are descriptors. I see your point -- since getField() returns an Object, it would certainly be nice to be able to call toString() on it without knowing the type. But, it's also important that EnumValueDescriptor be consistent with other descriptor classes, so we want to be careful not to mess up that consistency.
Instead of calling toString(), you could call TextFormat.printFieldToString() to get a string representation of the field, although it will include the field name.