Maybe the banks should simply stop committing crimes.
If a bank is really big, like HSBC, it can't/won't be penally prosecuted in real world, so the rational choice [1] is actually to keep committing crimes, and settle the ones where they're caught.
On the scale of such bank, even fines which would be astronomical from the perspective of a normal citizen, are peanuts (so to speak) for a large bank.
[1] = in a logical, not moral, sense.
Maybe US should not project their legislation on foreign subjects? They didn't vote for anyone who created that legislation anyway.
But the standard for banks is now a zero tolerance policy with multi-billions fines for any breach. It is a game they cannot win.