I think you have it correct now and there does not need to be any new property or exception. I interpret the specification to mean that ALL values in the lexical space should be allowed. This means that lower-case is not "invalid". I have verified that other XML validators will accept both lower and uppercase letters in the HexBinary type.
But, by generating in canonical form you provide a consistent output that can be used for strict XML document comparisons, etc. I suppose there could be a property for the validator that specifies "strict" (canonical) form or not. This would effect the validation of alot of different data types.