I have some programs installed in my ~/.local/bin/ folder and in /etc/profile I've got the following:
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="~/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:~/.cabal/bin"
fi
export PATH
XFCE4 does not respect this variable, instead having /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games as PATH, so if I open xfce4-terminal I cannot start programs located in ~/.local/bin/. This also goes for emacs if started from XFCE4, so M-x run-shen, for instance, does not work, as shen is not installed system-wide.
This problem does not occur when using startx, so the problem probably is with how XFCE4 is started.
I did grep -R PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games /etc/, but that didn't turn up anything but /etc/login.def.