Wouldn't it make more sense to simply use a final class? This gives both the guarantees of finalization and releasing memory. I don't think it would be acceptable to change RefCounted to use GC: That goes against the deterministic memory management, and it would still leak destructors.