Uhm, I didn't realize destructor methods were called, but now I see that's the whole point: destructor methods should be called when doing timely destruction. You already said just now:
This doesn't necessarily mean that their memory has to be freed but that at least their destructor methods are called.
So the objects may be still in memory. I thought the fact that they are still in memory was troublesome, but it's not, if I interpret your statement well.
No, the fact that a destructor method e.g. breaks the connection with a database server (that has a limited number of simultaneous connections) and is not called immediately and thus hogs resources that should be freed, is usually the problem. That somethiing that is known not to be in use anymore, is still in memory, is not a problem as it will be reclaimed automatically whenever more memory is needed.
Liz