Whether you call the external function file or include it directly in your code, the end result is essentially the same - the entire script and function files will be loaded in memory.

One concern I've always had was that as the external UDFs are updated, you never know when your apps will break - you need to test everything. I wrote a KGen utility that identifies which UDFs are in my library, what UDFs are referenced in my script, and then it automatically creates a .KIX file with all the required functions in it. That script will always work, even (especially) when I send it to a client who may not have the UDF library available (in the same paths, etc). Thus, I always use KGen and always include all the UDFs in my scripts as a single package.

When I update a UDF, I can re-run the KGen tool against my script and test - if it works, I can update the package. If it doesn't, I start with checking the most recently modified UDFs for compatibility issues, fix them, and re-gen.

I use Kix and a library of over 260 UDFs in commercial applications every day. The scripts need to work everywhere, every time. Packaging all of the UDFs into the script and Tokenizing insures this.

Glenn

PS - you can download the KGEN utility, User Guide, and our entire production UDF library from the web site in my sig if you want to give it a try.
_________________________
Actually I am a Rocket Scientist! \:D