Tuoni, good post, it looks better to find my own intersection points. The straight ones are easy, I'll mess with the others when I get time, I'm thinking translate the arc and the line back to zero then use the line and circle formula. If it works it will be handy as I can also return the segment number at the same time.
Tony's sort by distance is a good idea. I thought of doing that but using the distance of the point from the start doesn't always work but now I realise he is sorting bt distance along the polyline which sounds like it will always work.
Good there's still hope for the lazy way.