I don't think swapping directories works because the path is the same before and after. That could result in any in-flight catalog compilations seeing a mix of environment content from two different deployes.
Updating a symlink target is atomic, and the target paths are different, so in-flight compiles don't get a mix of content.