So for a non-referenceable node, removeExisting should have no effect (but should throw an exception in that case?)

For the case with same name siblings/forward compatibility, I would hesitate here, because if we support SNS then there are many more tests that should be done.