This behavior can be turned off by adding this to .zshrc:
setopt no_nomatch # if there are no matches for globs, leave them alone and execute the command
zsh also tries to autocomplete directory names using variables in global namespace that point to directories. I found that behavior maddening and can be turned off with:
setopt no_cdable_vars # don't use named directories in cd autocompletion