How many different modules are there? Can they all fit into workspace (memory) on an average computer? (I believe yes). Have you considered auto-loading all modules on startup (as Derive does)? Is there any other reason (besides efficiency) for not loading them all on startup?
And my preference: simplicity over efficiency for stuff that is realtime-fast (such as simple symbolic math).
I originally asked this in a bug report: https://sourceforge.net/tracker/?func=detail&aid=3054399&group_id=4933&atid=104933