nonfatal die -n "foo" simply returns with status 1, without any output. PMS is quite explicit that it should display the error message even in this case: "If called under the nonfatal command (as per section 11.3.3.1) and with -n as its first parameter, displays a failure message provided in its following argument and then returns a non-zero exit status." https://projects.gentoo.org/pms/6/pms.html#x1-13500011.3.3.6
This is now in git, courtesy of Ulrich: https://gitweb.gentoo.org/proj/portage.git/commit/?id=f0ce7366b137119f087974d52ae807940e74ed56
Fixed in 2.2.28. New commit hash: https://gitweb.gentoo.org/proj/portage.git/commit/?id=34dd17d154a4769c30a278f6bc407e8cb27706e9