Keeping unused points in the output is useful because it allows you to keep referring to the same point by the same ID after cutting. You can remove unused points anytime using Surface Toolbox “Clean” operation (or using vtkCleanPolyData filter).
If you can demonstrate unused points cause problems then we could remove the unused points automatically (you could then add a pedigree point ID array to preserve original point IDs), but if it does not actually cause you problems then it may be better to preserve the current behavior.