I must respectively disagree with you. Successfully executing su - provides a new login shell; it's like logging into the root account. Try this example:
From the normal user account:
and you will see that $A is undefined because the new root shell doesn't define $A. Of course, if you simple executed:
$A would still equal 6.
In fact, if the root shell is different from the normal user's shell which typically happens in legacy unix - not so much Linux where mostly Linux uses bash.
Let's assume root uses sh and normal users use ksh. Executing:
changes the shell to sh
If you don't believe me, google:
difference between su and su -