I haven't tested the new generational GC so this may all be moot but: I had a recent thought. Wouldn't a manual free method that frees the object and tells the GC that it this object doesn't exist anymore be useful in some cases? I can imagine anywhere where you have temporary objects allocated it would be helpful or when you have large arrays/arrays of objects which you know after a certain point will never be referenced again.
This would probably end up being abused as a premature optimization and potentially cause crashes if freed memory is accessed I do realize. There also will not be too many valid uses of it. I do feel that it could have some useful functionality however. Those that use gc_disable would then be able to free memory. Just a thought! Even if it is shot down the explanation will be here and others with a similar thought will hopefully be able to find it (If a similar one exists - I could not find it. My Google-fu is a bit lacking though, just link me to the discussion if so thanks!)