(1) stashing income derived in US somewhere offshore
(2) not repatriating income derived outside US back to US
If doing (2) entails additional taxes, why would rational multi-national corporation do that? Because America? The solution is to revise the tax code in such a way that income derived and taxed elsewhere would not be taxed again.
Take Apple for instance; they have a giant pile of cash that sits in bank accounts all over the world. Why should they move it back to US, pay huge taxes and let it sit in bank account back in US? That's irrational.
There are other issues involved: what are the actual tax rates companies are paying (too low!) and tax dodging all over the world (happens all the time! didn't Google just settle with EU?) but they are somewhat orthogonal.
The main issue is that US will tax one's profits again once they are moved back to US. Even if they profits are legally derived in another country and taxed in that country.