The way cs-cart sees it, it's not a bug, because you have tax calculated over unit price. In some countries, it works like this. It won't work in Europe though… where it would be better to choose tax based on subtotal. But then there are problems with customers who do not have to pay tax.
So if you also do b2b, for now you will have to use tax based on unit price.
There is an add-on here http://forum.cs-cart…ns-not-correct/ that fixes the tax amount when discount / promotion is being applied, and you have tax based on unit price problem.
It just gives a little error when there is no tax to be paid (for example, outside EU, or b2b orders)… I have this fixed though… so for convenience I uploaded the updated file again here. With thanks to Triplex, who first posted this add-on.