The two points where clever heuristics can be applied are in make_choice (i.e., which variable to set such that the search space is maximally reduced) and in rewind (i.e., which variable to unset to make the problem hopefully satisfiable again).
Different heuristics work best for different workloads, so you get solvers that are specialized for a single domain.
Different heuristics work best for different workloads, so you get solvers that are specialized for a single domain.