Historically, it's been always like this since version 1 released 10 years ago. Honestly, I don't remember right now why it was implemented like that, but I'm sure there were reasons.
We can't change it. What we could consider is a property in the manager that changes this behavior, so you can set it to modify the existing default behavior.
This doesn't make much sense to me, because in either case (deleting the record in case of RemoveOrphan
or setting the FK to NULL in the case of "no" RemoveOrphan
) the processing of removed items occur at the same time.