The pinch mode in the Manipulator tool often produces unclean results due to its naive implementation. So I tried to implement it differently, but the result is not any better unfortunately.
The initial method which I set out to replace works by simply moving curve nodes towards the center of the brush. Eventually nodes will accumulate at the brush center, and the reduction algorithm with usually take care of removing the redundant points. This is obviously not the right way to do it. Instead, I thought I would generate a pointy bézier curve from the intersection points between the curve and the brush circle and brush center, and when the user released the mouse button replace the curve segment with this generated curve.
Obviously this is far from an intuitive pinching behavior, so it's been discarded. I'll have to think of something else.