"qfile -q -f foo.txt" doesn't output any error message to stderr, in spite of the error being fatal (because of the invalid -f option). The -q/--quiet option should only suppress warnings, not fatal errors. (This is also what --help and the man page say.)
the errors aren't ignored, they're made silent. the non-zero exit code is pretty clear that it failed, so scripts won't start accidentally working.
i tweaked how we write to stderr so only warning messages should get suppressed now. fatal ones should still be written out. https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=b1558916d2ca76d7cd4c81248d5b220aaa46a728