The factory functions run, arguments passed to the factory are evaluated and the produced bytecode is saved with the session. The main motivation for this is compatibility.
An old session will use the script of the session, and not a potentially incompatible updated script from disk.
Or a broken one because you were still half way through making changes to it when you loaded a session that uses it. Very good.
It would be nice to have some kind of refresh-all-from-disk function/action. So a session could be updated to the latest version of all scripts it uses, auto-remembering where to find them and what parameter values were used when they were added last time. Would this be possible?