The worst change in program behavior from a complier user's point of view is when, through application of "optimization" rules, a safely terminating program is transformed into a failing one or one delivering a different result.

This can happen in the presence of

seq

, for example with a producer of the form

repeat x = unfoldr (\y -> Just (x,y))undefined

or

repeat x = unfoldr' (\y -> Yield x y) undefined

Fortunately, it cannot happen for any producer of a nonempty, spine-total list (i.e., one that contains at least one element and ends with

[]

).
The reason is that for any such producer expressed via

unfoldr

or

unfoldr'

the conditions imposed on

p

in the left-to-right approximation laws above are necessarily fulfilled.

A left-to-right approximation as in

destroy g (unfoldr p e)<math>\sqsubseteq</math> g p e

under suitable preconditions might be acceptable in practice.
After all, it only means that the transformed program may be "more terminating" than the original one, but not less so.

If one insists on semantic equivalence rather than approximation, then the conditions imposed on the producer of the intermediate list become quite severe, in particular in the potential presence of