Can anyone explain why this:
$parent = Parent::findFirstById($id);
$parent->getChildren()->delete();
WILL NOT fire a beforeValidation() event...
as this does (tested):
$parent = Parent::findFirstById($id);
foreach( $parent->getChildren() as $child) {
$child->delete();
}