So when you create a 'hard reference', it increments the ref counter. However, what happens if you use a soft ref? surely $baz='foo'; print ${'baz'} wont muck with the ref counter?
Comment on Re: Circular references and Garbage collection.
Symbolic references only can access global variables which never clean themselves up because they are always pointed at by the package table. This is in addition to all of the other reasons that it is stupid to use symbolic references when you have any decent alternative.