Actually, Gavin, I'll take this one step further... it's not just composite controls, but it's also QBlockControls as well (Panels and Labels) which may have child controls.
There are actually two ways that I've thought about this:
The first way is to do what you recommend -- a sort of AutoValidateChildren property. (I like that name, btw =)
The second way is to come up with a concept of “Validation” ControlGroupings, where you could specify any number of controls to be validated in a ControlGrouping. And where any button (or whatever control which triggers an action) can be set to validate any number of controlgroupings.
The second way obviously allows for a lot more fine-tuning/customization of what specific control(s) will get validated for specific actions... but I think it might be too much/overkill. Also, it may be more difficult to understand.
The more I think about it, the more i think your way might be the way to go.
Yeah, if this is something you'd like to take on, go for it! Feel free to send me any updates you have to QControlBase/QFormBase.