The idea was for it to at least work for tasks whose lifetimes are contained within loading the file. With this change, it no longer works in that simple case.

`source_path` is dynamic; it's the file currently being loaded. Setting up tasks to use it potentially long after the file is done loading is a strange thing to do. A function inside the file that calls `source_path` will also give a different answer after loading the file. This isn't too different from the task case.