In an RC system you must collect cycles. ARC leaves that to the programmer in the form of weak pointers. This particular idea automates that.
Having GC as a backup for cycles doesn't prevent making everything transparently refcounted. As to allocation strategies, the code can just use compatible allocation strategy.
