I consider that a mishap. But it's not quite so severe as for normal constants since an enum is a collection of values: Overriding it is more a question of modifying the collection (i.e. adding or removing values, although removing values wouldn't be safe typewise) rather than changing the individual values.
But I don't really know how enums react to overriding in the collection sense either. I consider both enums and typedefs as incomplete features since the types they define can't be used everywhere. I hardly use them at all.
Regarding constant binding, there's even more murkiness in that area, though: Constants can be used in case labels in switches, and the binding there is implicitly static since the jump table for switches is always fixed at compile time. I'd like to see a warning for that so that people are encouraged to use local::foo instead.
The optimizer could also choose to recompile functions in inheriting classes to allow static binding. In some cases that can be an interesting optimization. I had that in mind when I wrote the RXML 2 parser; specifically RXML.Frame._eval is a rather unwieldy function that is designed to be tailored to the specific RXML.Frame instance by simply removing through constant optimization the 9/10th of it that doesn't apply in each specific case.