Use ' %q' and you also fix the problem of program names starting with a dash.
Ah yes, that's clever:
$ sh -c "$(quote-argv -echo 'file with spaces')"
sh: 0: Illegal option -h
$ sh -c "$(quote-argv-left -echo 'file with spaces')"
sh: 1: -echo: not found
Over ssh: $ ssh example.com "$(quote-argv-left -dashtest 'file with spaces')"
-dashtest
file with spaces