Note: left the C# unfinished with regard connectivity > take the challenge and finish it [we need 2 trees - see some multiple curves added in the demo that yield points BUT NOT faces since they already sampled due to some previous ccx Event].
A DT (kinda a Dictionary of Lists) is a “higher” order of classification: see the newly added split curves option (works via a classic recursion) that is rather impossible to manage without a DT (or some other type of “nested” collection in case that you have aspirations to work outside GH).
But in real-life I rarely use DataTrees since GH plays a rather small role in the whole practice (AEC market sector) workflow … meaning that all C#'s must be as application neutral as possible.
BTW: Making geometry is nothing. Making connectivity is everything: thus take the challenge and try to do a connectivity Tree related with the splitted curve segments IN ONE go (i.e. inside the recursion).
BTW: See this as well (using another [rather primitive] approach than recursion):