OK, I'll start:

This move vertices to one point, the earlier in curve the more vertices. Then it merges them. It changes the shape of the spline:

The next step could be a calculation by perhaps aligning euler to curve tangent (captured just like the factor is captured above), plus aligning it to curve normal - like I aligned the caps here:

Then you could sample the beveling curve.
I didn't do it however, because that's not the way to go. The way to go is to select some points, and move them towards the next point. This brings two problems:
How do you select the points? One method would be to apply a ping-pong on the beveling curve (circle) factor and see if it's above a threshold. This probably shouldn't be a ping pong, more like multidimensional ping-pongs:
010101010101010101010101010101010101 111000111000111000111000111000111000 111111111000000000111111110000000000
Summing those ping-pongs you should get a value and check if the current factor is more or less than that (normalized) value.
Second question is how to figure out where to move the point, but I guess by transforming the formula used to generate that ping-pong, to calculate the distance to a value below the threshold, and sampling that factor to get the index...
Would the effect be better than merge-by-distance, remeshing or decimate modifier? I doubt it, that's why I'm not really motivated to finish this answer 🤪