Delete orphan" means only that an object removed from a collection gets deleted. It doesn't take into account whether the object gets added to another collection. The flag is actually associated to the collection and not to individual objects.
Your experience agrees with that, as does the description of javax.persistence.OneToMany. OrphanRemoval which, by the way, has superceded CascadeType. DELETE_ORPHAN.
The latter is now deprecated.
Finally I found out the reason of this behavior by looking into the source code.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.