That's not necessary, because if a field is of an Enum type, the field automatically must have a typeconverter.
If you don't use a typeconverter to set the field's type to an enum type but leave it as a numeric type, e.g. int, then you have to cast the enum value to int.
Sure, we could build into the field compare value predicate a check whether the object to compare with is an enum type and the field isn't, but IMHO it encourages sloppy programming: if you use enums in your program for numeric constants, which is a good thing, and you want to use them in areas where they've to be used as their numeric value, you have to cast yourself.
Though it isn't a big change in the predicate class for us, although it hardly ever occurs this way, as most people who use enums together with fields set the field of the enum type through a typeconverter.