Free memory questions

Thanks Paul,

This is radically changing my perception of how memory is handled in an arduino. I though that memory was dynamically allocated and de-allocated as objects move in and out of scope.
I guess this means that if I build a large project full of librarys and classes then ALL memory gets allocated up front no-matter no matter now deeply burried a particular object is?
Also, I guess this means that if I include some obscure little function that only ever gets called once it will still be using up it's memory allocation for the entire duration the sketch is running, rather than the brief nanoseconds when it's actually being used?
Finally, assuming I never use malloc() and free() does that mean that the amount of free memory available will remain constant at all points in the sketch?

Kind Regards

Mike