When invoked as a git subcommand, git-publish won't respect configuration overrides given on the git command line with the -c option. e.g.
git -c sendemail.smtpserver=smtp.example.com publish ...
Will still use the normal default smtp server, rather than the one given on the comand line.
I use a wrapper script with a bunch of -c overrides to distinguish between my upstream and downstream workflows, which makes it difficult to use git publish.