(demo-stream-problem n) consumes O(n) memory rather than constant memory. I believe that it ought not do so (though I understand the mechanism through which it does), but that `fixing' the problem is very difficult (though I believe it *can* be done, albiet with considerable work). The reason that I believe that it ought not run in O(n) time is because computing element n+1 of the integers stream requires only the single prior element and filtering a stream requires none of the prior elements.
I have actually run and tested this code on multiple scheme implementations with the same results. (The prior posting I just tested on one implementation. Mea culpa.)