It would be too hard for him to prevent them. So we have to allow servers to fail BIND requests that create loops, but not force them to. Our original motive in saying that the server MUST allow loops was to insure that clients knew what to expect. We want to use MUST unless there is good reason not to. We think there is good reason in this case.
Flexibility is needed here.
We want to be sure server implementers understand that they are allowed to fail a BIND request that would create a cycle, but are not required to do so. It's just removing a single binding, even in the case of deleting a collection. The example in Jason's note shows why. It's either removing the binding to the collection, or removing the binding to that collection and to each of its descendents in the hierarchy. Jason's example shows why it has to be just removing the binding to the collection.