looks like if ROOT & PORTAGE_BINHOST are set via PORTAGE_CONFIGROOT, emerge will incorrectly warn that it is unset. there might be a simpler scenario here, but this is pretty close :p.
Portage 2.2.0_alpha161 (default/linux/amd64/10.0/developer, gcc-4.7.2, glibc-2.17, 3.7.1 x86_64)
mkdir -p /tmp/configroot/etc/portage
ln -s /etc/portage/make.profile
echo PORTAGE_BINHOST=file:///usr/portage/packages > make.conf
echo ROOT=/tmp/configroot >> make.conf
portageq envvar PORTAGE_BINHOST
emerge -gpvq iputils --nodeps
!!! PORTAGE_BINHOST unset, but use is requested.
I guess you don't have PORTAGE_BINHOST set for PORTAGE_CONFIGROOT=/, which is used to resolve DEPEND (the fact that you used --nodeps doesn't prevent the config from being loaded for PORTAGE_CONFIGROOT=/).
(In reply to comment #1)
i do not. in this case, we're using PORTAGE_CONFIGROOT to do all installs (it's just native binpkgs) because / is not writable, only /usr/local/ is. so we set PORTAGE_CONFIGROOT=/usr/local and run `emerge -g foo`.