And break other things, no doubt. needed = 0 is a perfectly valid edge case and mustn't be rejected here. (In fact, I doubt you'd even get through the regression tests with this patch ... how much did you test it?)
The real problem with what you describe is that you should have used makeStringInfo().
> I also found the absence of a function like resetStringInfo() a bit > puzzling.