lldb doesn't need to have a local copy of the binary that it is going to ask the remote stub to run for it, it can send the remote stub a path to the binary, and then read the executable module out of memory once the binary has been launched.
There is a workflow for providing an alternate remote path, but it hangs the information off the executable module, which if you don't have a local copy of the file you can't make.
So I came up with an alternate workflow for the case where you don't have a local executable copy, using LaunchInfo::SetExecutableFile. If you tell a target or connected process to Launch, and the LaunchInfo has an executable file but the target doesn't, then send the LaunchInfo's executable file to the remote stub, to see if it can launch it.
This probably shouldn't be a hard error. If we fail to obtain the executable module, I'd think we should still be able to continue with asm debugging. (In fact, since you don't clean up the process here, that's probably what will happen regardless of the error state.)