i can see the theoretical justification but I am yet to use a system where:
* i do not need to decrement ref counts manually in various situations or by default
* i do not get memory leaks resulting from the above ambiguity
* its easy to debug a leak (because I need to hunt for the right place to decrement the reference count, not just slap it in wherever i want)
coupled with the performance overhead of refcounting i see no benefit to it in practice - as nice as the theoretical idea is. this could be personal experience though - i can easily say that i've had more memory leaks from not understanding a ref counted library than when i manage my own memory - but that might not be the general case.