The lazy evaluation provides something that RACEagerSequence may still need. A way to limit the depth of the recursion. Wrapping the "rest" value in a RACSequence provides two things:

 1. A way to stop us from expanding unnecessary parts of the sequence.
 2. A way to terminate the recursion early (not accessing rest.head).

Although 1 no longer applies in the case of RACEagerSequence, 2 definitely does. In the case of actually generating a value the fold is not lazy unlike bind. Instead, the "laziness" is simply a way to better control how much work we do. What's the reasoning for limiting folds on eager sequences?