I couldn't really follow you and am no expert of this code.
The only important thing here, rdmd builds and runs a program from the current sources.
Any failure to build must prevent the user from inadvertently running an outdated program.

> So you think we should forbid the user from starting a program, opening a second terminal, editing the program and starting a second instance?

No, but it's a minor use case and if that prevents us from running the major use-case in a fail-safe manner we need to come up with a solution.
In case of the hash cache, hashs will differ, so no two different executables can collide.
In case of an explicit output path (`-of`) failure is acceptable if overwriting isn't possible.