This is because an assertion is essentially ANDed with the grammar or datatype or keyref etc constraints. Like a Bloom filter.I think assertions are always subsumptive in your terminology. Even if they appear to allow otherwise.For example, if you have an element of type Integer and the assertion constrains the element to be either the text "54" or the number 32, the type is constrained to be the number 32. The constraint of having text "54" would never be exercised.