Another benefit with explicit GC pointers is that you could ban GC pointers to classes that provide destructors, sanitizing the constructor/destructor situation.
This could also be done at the allocator level, though. An allocator presumably knows whether it's objects are garbage collected (hmm... maybe not necessarily?), and it can inspect types to find out whether they have destructors.