Attached is a custom node: path_string. It converts a path to SVG notation. I have also provided a subnetwork, path_table, that converts that path string into a table of points with attributes (contour number and point type).
NodeBox paths consist of both line segments and curves, but information about the curves is hidden. You can see the difference by checking the Points checkbox above the canvas: blue dots are normal points, red dots are curve control points. If you convert a path to points, all you get are the normal points.
Nodebox also fails to provide a way of separating paths into distinct contours. When morphing or resampling text paths you get an unwanted line connecting the insides of multi-contour letters with their outsides.
Path_string and path_table provide a way around both of these limitations. By filtering the path table you can extract clean contours, and by accessing point types (P for normal point, C for control point) you can finally see (and potentially manipulate) what's been hidden.
The demo network shows how path_string illuminates three example shapes: a text path ("ab"), a quad curve, and an arc.
The first screenshot shows the output of the path_table subnetwork, in this case showing some of the "ab" points. The other three screenshots show the three sample shapes with normal points shown as blue dots and control points shown as red dots.
It's fun to adjust the T and Distance parameters of the quad curve, or the degrees of the arc to see how the control points change.
Now that we can see and work with curves and contours, my goal is to provide a way of reversing the process: turn strings back into paths. This would make it possible to precisely morph curves, draw a whole new class of curves with asymmetric control points, and who knows what else. Thanks to Frederik for pointing me to the location of the RenderPathData function.