PYMODM CASCADE and DENY rule

Problem in Pymodm, Python.
Problem with ReferenceField and DENY rule.
Example, model1<-model2<-model3.

Inside model3, exist field:
ref = fields.ReferenceField(Model2, on_delete=DENY)

Inside model2, exist field:
ref = fields.ReferenceField(Model1, on_delete=CASCADE)

When I delete object model1, he delete, but model2 not delete, because in model3 DENY rule.
This bug? Why model1 delete if model3 contain DENY rule?