When I use an alternative config root (using env var PORTAGE_CONFIGROOT) and link a profile to PORTAGE_CONFIGROOT/etc/make.profile, it is not used, as always the default /etc/make.profile is evaluated first. If I delete /etc/make.profile, emerge exists with an error about not finding a profile. This is caused by emerge calling the config.validate() function (in /usr/lib/portage/pym/portage/package/ebuild/config.py) first with the / as config root even when PORTAGE_CONFIGROOT is set
It actually uses both /etc/make.profile and $PORTAGE_CONFIGROOT/etc/make.profile. The reason is that /etc/make.profile is the "host" configuration, which is used to satisfy build-time dependencies (like gcc and whatnot).