Well considering how many times you've been of the opinion I was doing something wrong, I'm surprised I get anything done at all ;)
It's quite simple. I want my game engine to have an internal reference to all game objects, but I want the game ( not the engine ) to be able to destroy an object without explicitly free'ing it. If the engine has a reference, and the game doesn't ( nor should it ) have access to those internal references, the object won't be collected. If the engine can say "oh, just 1 reference to that, let's destroy it" then my game engine can manage the objects itself.
It's quite simple. I want my game engine to have an internal reference to all game objects, but I want the game ( not the engine ) to be able to destroy an object without explicitly free'ing it. If the engine has a reference, and the game doesn't ( nor should it ) have access to those internal references, the object won't be collected. If the engine can say "oh, just 1 reference to that, let's destroy it" then my game engine can manage the objects itself.