if you take a look on jsr-303 (bean validation) you notice that annotations can be be put on ANNOTATION_TYPE in @target like (e.g. javax.validation.constraints.Min)
By this the bean validation are easily extended to @OnlyPositiveNumber.
in jaxb for Example (a bad one) I could have created @XmlAlwaysRequiredElement
Is there a good reason why JAXB annotations like XmlElement are not using the same technique?
I doubt you could say “it wasn’t done because of X” – it is the way it is, and either the spec leads didn’t consider it necessary, or they didn’t think of it at all. Who knows.
However, in the case, I don’t really see much need for it. You example concerns data validation, and JAXB is designed to work with XML Schema to do that, rather than doing to validation using annotations.
If we want to have annotation-based validation for JAXB, then it would make more sense to use JSR-303 validations for this, and have the JAXB runtime pick them up and use them, rather than, or in addition to, XML Schema validation. None of the current implementations do that, though (I think).