Hi David,
Ah yes, clarification - always a good idea!
The back story is that I decided to spend a year using MMA exclusively (as far as possible). I really want to understand what I can and can't do in the system. Or, perhaps to put it more accurately, what I should and shouldn't use it for. I am particularly interested in exploring how machine learning might change the way I solve problems.
So far, I have found myself using MMA in two distinct modes:
1) exploring a problem, for which the notebook is a good model
2) building small utility applications, which I will want to reuse in whole, or part.
Because I come from a purely Object Oriented background (Smalltalk), I find myself thinking of functions as if they were objects, and that leads me to want to create instances of functions, hence the need to understand how to save, and reuse, with the minimum effort.
I went back and reread your essay on how to structure applications, and I found that very useful. I am going to adopt that structure when building this little utilities and see if it helps. I think I will also try Alan's suggestion about capturing my functions in a notebook, and then evaluating it at the start of each project. If I understand correctly, that will allow me to access the functions without wrapping them in any other function call.
In addition to the above, I am going to try out the IDE experiments. I am not sure at what point, in the development of a solution, one switches from the notebook to the IDE. Time will tell.