Please ignore this thread.
There was erroneous line my code where an object is assigned to a collection it already belongs to.
So this is not the case of “error-in-assigning-an-object-to-multiple-collections”.
The code above works as expected with an added check if the obj is being linked to its current collectioni.