This is a function of how parameterization of a curve works. Each parameter is basically the vector at a given location as needed to define the shape, sort of like calculating every change in direction as you drive from point A to point B. If you speed up, it’s a new vector; if you slow down, it’s a new vector; turn the wheel, a new vector; make any change to the trajectory of the car in any way, a new vector.

Because nurbs curves are non-uniform, they allow for these changes in vectors which vary in angle and location along the curve. Conversely a uniform curve has a single vector along it’s entire domain (parameter 0 to parameter 1). Polycurves are unique in that they are built from either uniform or non-uniform curves, so parameterization will be skewed based on the types of curves involved.

This is not unique to Dynamo by any means - in fact this very analogy is borrowed from the IEatBugsForBreakfast blog authored by David Rutton which focuses more on the Rhino/Grasshopper tools offered by McNeel. It has two excellent and relevant posts on the topic worth reading. For something more dynamo centric, the topic was discussed and illustrated in the computational geometry section of the Dynamo Office Hours series, found here: 08 - Computational Geometry: Model / Physical types with Dynamo - YouTube