I think we have 4 options:
1. Don't flush on reload
2. Flush everything on reload
3. Flush some things on reload, but accept that we won't cover everything
4. Write our own version of ns_memoize (which is just a wrapper to ns_cache anyway), using tcl's trace command to build up a proc dependency tree.

If we did write our own memoize (regardless of whether we track dependencies), we could avoid  calculating md5s for every proc on reload, and only look at the procs we've cached.