It is awkward to provide a custom "required" message for a form component from Java. One must override and re-implement validate(). Making the form component not required and providing an explicit validator is sub-optimal, since there may be other components that depend on the required flag. For example, I have a label component that automatically adds a star when attached to a required form component.
Making FormComponent#reportRequiredError() protected would make this trivial.