The path '/usr/portage' is hard-coded into several of the scripts in /usr/lib/portage. This means that the PORTDIR environment variable isn't consistently honored by portage. For example, "emerge search" won't follow PORTDIR. I discovered this when I ran our of space and had to move my portage tree. I realize that a symlink will work around this, so it's a minor bug. But shouldn't I should be able to move my portage tree or have multiple trees without using symlinks? And besides, hard-coded paths in multiple places are a bad idea.
Will be fixed in portage 2.0.12; thanks :)
I am afraid this bug raised its ugly head again. I ran into the exact same symptoms after moving the /usr/portage directory to another partition and setting PORTDIR accordingly. portage version was 2.0.50-r8. Making the symlink from /usr/portage to the new location solved the problem, of course...