From what I see it's not just a warning:
$ emacs --batch --eval "(let ((debug-on-error t)) (setf vc-git-program \"git-is-not-installed\") (find-file-noselect \"whatever\"))"
Debugger entered--Lisp error: (file-missing "Searching for program" "No such file or directory" "git-is-not-installed")
call-process("git-is-not-installed" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z" "--" "whatever")
process-file("git-is-not-installed" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z" "--" "whatever")
vc-git--call((t nil) "ls-files" "-c" "-z" "--" "whatever")
vc-git--out-ok("ls-files" "-c" "-z" "--" "whatever")
vc-git-registered("/home/paul/eldev/whatever")
vc-git-registered("/home/paul/eldev/whatever")
vc-call-backend(Git registered "/home/paul/eldev/whatever")
#f(compiled-function (b) #<bytecode 0x15a622e462a366fe>)(Git)
mapc(#f(compiled-function (b) #<bytecode 0x15a622e462a366fe>) (RCS CVS SVN SCCS SRC Bzr Git Hg))
vc-registered("/home/paul/eldev/whatever")
vc-backend("/home/paul/eldev/whatever")
vc-refresh-state()
run-hooks(find-file-hook)
after-find-file(t t)
find-file-noselect-1(#<buffer whatever> "~/eldev/whatever" nil nil "~/eldev/whatever" nil)
find-file-noselect("whatever")
(let ((debug-on-error t)) (setf vc-git-program "git-is-not-installed") (find-file-noselect "whatever"))
command-line-1(("--eval" "(let ((debug-on-error t)) (setf vc-git-program \"gi..."))
command-line()
normal-top-level()
Paul