Until executives and shareholders feel real pain, companies can simply make their decisions based on cost outcomes. In most cases, the financial incentive to cheat and flaunt the law is just too great compared to the risk of penalty.
Throw some execs in jail, starting with the CEO. If CEOs are so valuable that they can be paid 100x median employee wage, then they should have some real responsibility. And penalize the stock in some way so the investors feel the pain. Sure, it's not their fault necessarily; but if you make the investors angry enough, they will demand proper behavior from the companies they invest in.