I don't know why it's set up that way. This is the config file in question:
https://dev.getsol.us/source/bash/browse/master/files/profile/10-path.sh
export PATH="/sbin:/bin:/usr/sbin:/usr/bin"
if [ -d "/usr/local/sbin" ]; then
export PATH="$PATH:/usr/local/sbin"
fi
if [ -d "/usr/local/bin" ]; then
export PATH="$PATH:/usr/local/bin"
fi
if [ -d "$HOME/bin" ]; then
export PATH="$HOME/bin:$PATH"
fi
When I wrap this up into another conditional, it only resets the path if it doesn't already exist
(JUST AS A QUICK TEST FOR MYSELF; I DON'T ADVISE YOU TO DO THIS UNDER ANY CIRCUMSTANCE; DANGER OF MAKING YOUR SYSTEM UNBOOTABLE)
if [ -z "$PATH" ]; then
export PATH="/sbin:/bin:/usr/sbin:/usr/bin"
if [ -d "/usr/local/sbin" ]; then
export PATH="$PATH:/usr/local/sbin"
fi
if [ -d "/usr/local/bin" ]; then
export PATH="$PATH:/usr/local/bin"
fi
if [ -d "$HOME/bin" ]; then
export PATH="$HOME/bin:$PATH"
fi
fi
This then behaves the way you described (i.e. a new shell inherits the path from the parent process). But on the other hand, maybe my system will no longer boot if I leave it like that, so I will change it back right now. 🙂
I'm sure there are reasons for the way it's currently configured, but I couldn't tell you.