Here something crazy
curve_intersection_grouping.gh (27.1 KB)
This is a possible solution by exploiting manifold edges of meshes, by using [Mesh join] and [Split disjoint meshes] functions.
First used MCX to have all the possible intersections.
Then used indexes to create single-faced quad meshes on XZ plane with Z edges with X coordinate equal to the indexes.
Join mesh will then join quads that share an edge , but it is not limited to a single coupling: all the quad faces that share a single edge will be merged into a single mesh.
(3 curves touching into a single point cannot be joined into a single object, but meshes can and will)
Disjointed the meshes.
Extracted the vertexes of the mesh and re-converted X values into indexes.
Edit:
Better version of the same concept by @anon39580149 here Sets question