[...] In the case of a lazy function ignoring its argument, no space is leaked
unless that argument is retained elsewhere, and the function was the sole
means of forcing the value.
This is the scenario I had in mind, but obviously I didn't explain that terribly well... :-} Personally, I think this is not so uncommon, at least in the initial stages of writing a library or program.
[...] Space leaks require ever deeper chains of unevaluated thunks. [...]
Perhaps we have different definitions of "space leak" (is there an "official" one?), but keeping a single thunk alive for a long time, which in turn keeps some huge data structure alive is a kind of leak, too, no deep chains involved. Maybe there is a better term describing this situation.