I was just bit by this issue; I wanted to "bazel run" two long-running scripts at once.
There is one important convenience that --script_path offers: when you're using runfiles with "bazel run //foo", the foo script's working directory is bazel-bin/foo/foo.runfiles, so executing the script with ./bazel-bin/foo/foo has the wrong working directory, missing the runfiles. When you use --script_path, the generated two-line script first does a cd to the correct runfiles directory and then runs the script.
But the generated script includes absolute paths, including platform-specific paths, so the --script_path script can't be checked in. We already .gitignore bazel-*, so we created a "bazel-scripts" directory as a convention.
So we're developing a wrapper script like this:
mkdir -p bazel-scripts
bazel run --script_path bazel-scripts/foo //foo
bazel-scripts/foo
But, not to whine, but that is quite a bit of boilerplate just to run a script without a lock. I wish I could just "bazel spawn //foo" and have it DTRT, locking the client until the script was generated, then releasing the lock to run the script. Or "bazel run --nolock //foo"
Would a PR be considered to add something like this?