I find this a real interesting question.
Although I think you are correct in your assumptions, I wonder if there is a workaround.
if you split a mesh with one curve, it will result in either two (if the curve is on the brep) or one (if it is not) brep(s).
this is obviously done by one core.
when it results in one brep the next task of checking the brep with the next curve the task stays on one core, but when it results in two the multiple cores could become interesting. Instead of one core checking if the following curve is on either one of the resulting breps, this task could be split over multiple cores that do the same task.
As soon as the line results in a hit or total miss, it should be removed from the lines to test. Whenever a brep splits it should be removed as well only to be replaced by two new breps!
So instead of the list of curves being tested on a single brep, the single brep grows into a list of breps that are tested to single lines!
At least, this is what I think.
For I to have to come over the fact that a damaged old team beat our young guys past week. Good luck, Ibra should do the trick