The shell startup scripts are kinda funky. When starting a
non-interactive login shell, ~/.bashrc is sourced twice, once from
~/.bash_profile and again as $BASH_ENV. See bash man page. (Also bad
because it uneccessarily causes ~/.bashrc to run in non-interactive,
non-login shells, when none is needed.)
Now, bash's startup script needs are confusingly awkward, but here's one
way to handle it: Put everything in a bashrc file in two sections, one
for exported stuff, one for non-exported stuff, each protected by it's
own environmental variable such that when the variables are undefined,
only the non-exported stuff is used (like a normal bashrc file). Then
source the file from a profile file with variables set so both parts are
used. (If someone wants to use ENV or BASH_ENV, they can have the
profile file cause only the first part of the bashrc file to be used
from the profile file.)
Assigning to bash, that's where these scripts live these days.
Fixed in 2.05-5, we're no longer setting BASH_ENV.