Why are waypoints added when a timeframe is stretched when keyframes are unlocked?

If you have past and future keyframes unlocked and increase the length (delta) of a keyframe, it seems that .lst s get extra time offset waypoints added to them at keyframes after the one you increased.

Why does this happen?

I think they are added in keyframeset.cpp#L353 in the exception handler if no waypoint is found at a keyframe.
The past or future keyframes being locked is handled by separate code in waypointsetsmart.cpp.

I’m not sure what should be the right behavior when Keyframes are unlocked and Keyframe duration is modified. Specially when unlock is partial not full.
Can you propose a behavior for that and add it to the tracker?

I am happy to do so but I think some discussion is required as I’m not experienced enough with Synfig.

In my particular scenario there seems to be no point in it, the added waypoint has no Time Offset or any other property set that I can see so I don’t think it’s doing anything - I’m not sure what waypoint.set_value((*value_node_animated)(old_time)) is achieving.

But the code is deliberately written - separate from the code that runs when timeframes are locked - so I assume it is useful in some other scenarios?

I’m a bit lost. Can you step by set reproduce the current behavior and explain why is that not desired?
Please use a simple example to do so.
I don’t want to enter to study code yet until I don’t understand what’s wrong from the user point of view.