The way I get around this limitation, is to turn my scripts into functions that take no arguments (if I need variables from the global namespace, I either explicitly pass them in the function, or use "evalin" to grab them.)
Then you can define all the additional functions you need in the "script."  It's a hack, but I have found it to be quite powerful in those cases where I need several non-trivial functions.
EDIT:  Here's a simplistic example.  All this can reside in a single file.
function [] = myScriptAsAFunction()
   img = randn(200);
   img = smooth(img);
   figure(1);
   imagesc(img);
   axis image;
   colorbar;
end
function simg = smooth(img)
    simg = img / 5;
end