Yeah, it does look a bit unreliable. But I thougt if nothing else, maybe you could take a look at the sources and see how it is taken care of there. But then I guess that means that it has nothing to do with systemd at that point.
@cfr, you know you can simply use [[ -f /etc/profile ]] && . /etc/profile instead of the if/then statement. It will work either way, but I use the one liner because it makes my .xinitrc look a little cleaner.