A predicates with too many variables and too few non-satisfying assignments (such that very few loops get removed by selection) may cause non-mature loops to get stranded and with no space to replicate.
The processing of such predicates will never end. A more sophisticated expansion scheme is required.
Example: ./sat -o -r "(a or b or c or d or e)"

This configuration just goes on looping forever because the inner non-mature loops are stranded by the outer satisfying loops which aren't going anywhere.