There is a difference between the startup files that bash runs at logon and when starting an interactive shell after logging on (the last happens most commonly when starting a terminal emulator in a graphical desktop environment). Commonly the logon files are modified to also run the "interactive non-login shell" files to make the environment the same in each case.
You could add the following at the end of /etc/profile
case $- in
*i* ) # We're interactive
if [ -f /etc/bashrc ]; then . /etc/bashrc; fi
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi