The most radical solution would be to sort all rules in one go, then introduce section boundaries in (six) equal intervals to prevent heuristic rules from being used in too early a pass (exploiting the 1, 1-2, 1-3 ... rule batching property of CG compilers).
this sorting & resectioning algorithm produced poor results when used on its own -only when the original human sectionizing information was factored in by dividing rule worth by section number, was some improvement achieved (0.1 percentage points).