Thanks for explaining !
Yes, from the code, it looks like the line might be useless, if what you need is just the point …
Also, in RhinoCommon, Point3d, Vector3d and Line are structures, not classes.
That should make then quite cheap on resources anyway.
Here, as I understand it, you create a point and a vector for any iteration,
which, as I already said, should not be so slow …
Only way that I know to even avoid to create these objects (structures) is working direclty with coordinates
e.g.
end_pt.X = start_pt.X + vect.X * Len
end_pt.Y = start_pt.Y + vect.Y * Len
end_pt.Z = start_pt.Z + vect.Z * Len
… but I have no idea whether this might be faster … or even slower … sorry 
About this … Yes, I remember reading about that here …
I think planes in RC have to be taken with caution …
Actually in Rhino planes are two-fold.They are simple planes, but they are also used as reference systems (or frames).
and often (IMO) is not clear in which way they are taken, this can be confusing.
I think the flipping you’re talking about might happen when the plane is considered … just a simple plane. That is a point and a normal, without a side and without X and Y axes.
In this context, I think that the plane ‘cannot’ flip. I mean … it’s always the same plane. A simple plane has no orientation.
But if here we assume that it is a frame, with its three axes, we might be going into troulbes …
It might be safer, when in doubt, working directly with a point and two vectors (origin, Xaxis, Yaxis) , and then build a plane from them when needed …
( This is only my personal … scripter opinion
… )