Well a certain amount of confusion is expected when you read documentation for version X while using version Y. But it's like this:
We have multiple "GCs" since a long time. Though in retrospect GC should have been called "memory management strategy". There are two new GCs in development, ARC and ORC. ARC is reference counting with move semantics and RC elisions. ORC is ARC with a cycle collector. `--newruntime` should be removed, it is an experiment that lead to ARC's development. All GCs except ORC are moribund, the only trouble is that ORC is still in heavy development... Shallow copies are problematic because you cannot shallow copy a seq and then grow it later afterwards. Move sematics are a much better solution to the problem but back then they were unknown to me -- C++ still lacked them.