Could you please explain this a bit? I don't know why do we need this. This causes strange situations for me. Suppose we have locations A < B < C, I already assigned A and B now I edit a record and I'm trying to add C. Everything seems normal but this newly created association is deleted immediately and silently. On the other hand if I try to add A, B, C at the same time it works.

My feeling is that you try to disable user adding taxonomies where parents are already assigned. I don't think it's a good idea because you can get to that state by different order of assigning. I think it would be better if all children were assigned automatically so user would already saw them assigned. However same problem would appear with unassigning them, therefore children taxonomies should be disabled in UI.

Since this could get tricky very soon, I'd prefer different UI if we want to support nested taxonomies. In worse case at least let the user know why some taxonomy can't be assigned.