Your example is exactly what I was thinking as a solution.
However, I just wanted to know whether an "optimised split" algorithm has been implemented. The PostGIS link was very helpful as well.
I'm not aware of any, but this you can check (or hope) if the `intersect` function is
optimised for point and line case, calculating distance.
I can't remember or am not up to date myself on that.
You may want to post question specifically about to Boost.Geometry mailing list
(actually, much better place to discuss BG issues, than general boost-users).
If not, you can try to optimise the proposed solution by testing easy to optimise
and shortcut cases yourself. It may be a good idea to learn from PostGIS again,
see what the ST_Split function does. For line and point case,
ST_Split is implemented in terms of this function