sourcing bash profile for root users
The problem you are encountering is that when you run su by itself, you are not entering a 'login' shell. This means that your environment, working directory, and everything except uid/gid remain the same of the original user.

Login triggers do not execute, and you experience the issues you describe.

A simple solution to a simple problem:

su -

From the su(1) man page:


  The su command is used to become another user during a login session. Invoked without a username, su defaults to becoming the superuser. The optional argument - may be used to provide an environment similar to what the user would expect had the user logged in directly.


Also:


   -, -l, --login
       Provide an environment similar to what the user would expect had the user logged in directly.



If you su into a login shell, bash will behave as you expect, and automatically source the appropriate files on "login", without the need for overly hacky workarounds.