I think counting splines and control points is the right idea.
We know that every CP on a five pointer is five spline segments away from itself...
If we limit our search to finding "proper" five-pointers, five-pointers that have a different spline on each side, we could just check every five-segment path from a CP that changes splines at each intersection.
If a five-segment path doesn't lead back to the starting CP then that set of CPs is not a five-pointer.
If a five-segment path leads back to the starting CP, then that set of CPs can be made a five-pointer...
There should be 4 * 2^4, or 64, possible paths to check for each CP.
in a 2000 CP model that would be 128,000 paths to check.
If each path took 1/100th of a second to check, the whole model would take 21.3 minutes.
The number of paths to check could be greatly reduced by limiting the search to the "current selection".