The amount of effort required when a refcount reaches zero is unpredictable in general, yes, but at any particular site, the shape and lifetime of objects tend to follow a pattern. So if a particular bit of code drops a refcount to zero and takes a long time deallocating objects, it will with high probability always do so and is hence still fairly predictable/consistent.