Because there is no single document for "international law" that you can just change. International law is basically word-of-mouth agreements and norms bunch of countries have, of what they agree to follow, without anyone actually being responsible for creating, maintaining and enforcing them.
Basically, international law is as far away from "law" as you can get in the traditional sense, and a bit of a gentlemen agreement today.
The main reason for that is because there is no One World Government yet, and no such thing as international law.
In case of Starbucks: they move a ton of their profit to a coffee bean exporter from Switzerland which they own themselves. And how should a government say how expensive those beans can be?
Any company can outsource part of their revenue to a subsidiary in a different country like that and it would be extremely hard to encode in law when they wouldn't be allowed to do this "because of taxation". Uber could for example move their cloud management costs to some company in a low tax country, or maybe have their developers outsourced to some low tax country. How would you decide that is "valid" outsourcing vs "tax cheating" outsourcing?