I think it would be the only solution, because it will always be easier to manipulate your benefits than earnings.
Although we could imagine something more complex: pay taxes on (revenue - expenses to compagnies that also pay taxes).
So now if you buy a product $100 to a company paying 25% taxes and sell it $110, you pay taxes on the $10, but if you buy your product to a company in some island, you pay taxes on the $110.
Smarter: if you buy to a company that pays a 20% tax while in your country you should pay a 30% tax, then you pay taxes on ($110 - $100*(30%-20%) = $20).
Everything get more complex but it's just a bit more CPU time.
Wherever this is implemented it's an option. It's never mandatory. There are tons of knowledge based operations where expenses are way too few. Obviously if you are a traditional buy stuff, add value, sell stuff business then you want to bother with bookkeeping sure.
I think that's a bit insane and lot's of business wouldn't be able to survive. If I buy something for $100 and sell it for $110 I now have to pay tax on the $110 amount rather then the $10 amount, increasing my tax tremendously.
For businesses with lot's of inventory that would be murder.