It's not a bug, we(Commerce team) implemented it intentionally. The shipping discount is only applying to one shipment which has the greatest discount amount.
For your purpose, you should reimplement the Applicator in your way.
Thanks for the quick reply. We will do that.
We have a project running Commerce 13.7.0 where we break orders in to multiple order forms / shipments, and are having trouble with shipping discount only applying to the most expensive shipping cost, and not the others. IE
Shipment 1 has a shipping cost of 39.76
Shipment 2 (in the same order form) has a shipping costs of 28.00
When we apply a coupon code that should apply a 10% discount, we get total saved of $3.98 and a total shipping cost of $63.78.
I believe I have traced it back to ShippingRewardApplicator.Apply method where it calculatus the remaining shipping costs using the sum of shipments in affectedShipments, and not on a shipment, by shipment level. Is this a bug, or is there an reason for doing this? We can reimplement this the way we need, but wanted to check first.