After a closer investigation of the CopyingCollector policy, I am a little confused as to its intended behavior. It appears to be attempting to perform split-heap (i.e. "new-space"/"old-space") copying, where, during each collection, the surviving objects are copied to the other half of the heap. This is exactly the behavior that is implemented in the TraversalCollector.
Does anyone know what the original motivation (and the distinction in intended behavior) behind the CopyingCollector and the TraversalCollector was?