Orphan Removal in ManyToMany Associations
The orphanRemoval option in a ManyToMany annotation defaults to FALSE.
In the Flow3AnnotationDriver a check is made for $manyToManyAnnotation->orphanRemoval which in turn will always be FALSE because it is the default (and not only when it was actually set to FALSE in the annotation, which seems to have been the intention of the check). Therefor unless you set it to TRUE anyway it will always go to the elseif which checks if the associated entity has a repository and then sets orphanRemoval to TRUE.
Which means that if you have a ManyToMany relation where one entity has no Repository that will end up with orphanRemoval TRUE regardless of what you really annotated. This is not really the expected behaviour and especially for ManyToMany often wrong too.
I suggest to remove the check for ManyToMany relations and use the actual value that is annotated (or the default FALSE), but that of course is a breaking change as it will leave orphans behind in cases people unknowingly accepted this (wrong) behaviour.