Hello Alexis,
I do think that what you described in your reply is conceptually quite different to what you described earlier. This time, you're making a different point where what you want is mostly to increase the quantity from 1 to 2 where you don't want to change anything about quantity 1, it's already paid and will continue to be used, but you want to charge for an extra quantity. And you want that payment to be in full (no discount applied). In that case, yes the math adds up to 50€ since it's an extra quantity for half a year and no discount, but it's not the same as how you counted the refunded discount before.
Unfortunately, with products like Billing, there are a lot of business models and ways to charge customers. And one problem is that "the right behaviour" depends on which business model you follow. At first you might think that there's one correct way to react to an event, but it's often biased by that decision in the first place. If you're a business that doesn't refund on cancellation, you want the default behaviour to keep the Subscription active until the end of the already paid period. If you refund by default though you'd want the cancellation to be immediate and the customer to be refunded immediately.
Over the years, I've explained Billing to many developers and the way I frame this problem is that the "right default" is rarely what your intuition assumes at first. There are often so many different edge-cases that Billing will sometimes appear to choose the "wrong" default where in fact it makes a lot more sense once you take all those edge-cases and complex alternatives into account.
The real issue here is not that it's wrong or the wrong default and more that we don't offer a way to model that specific behaviour easily unless you do the math yourself. We do hope that one day we can offer an option to make a quantity increase behave by only prorating the extra quantities you're adding without touching (refunding) what has already been paid. It's something we're definitely aware of but it's unfortunately not something we can fix for now.
Best,
Remi