The idea with streams is that IN FRONT OF STREAM returns immediately, without doing the computation promised in the tail. So if you only need the first n items, and n << length(input), you should get an answer quickly because the rest of the data aren't sorted at all. Comparing lists with streams when you're going to compute the stream to the bitter end kind of misses the point; if you're going to compute the entire result, then yeah, all the overhead of streams doesn't buy you anything.
The canonical example, I guess, is PRIME?. You can write it as a loop:
This has the advantage that compound numbers are detected quickly; prime?(1000000) reports False instantly, because 1000000, even though it's a big number, is divisible by 2. The disadvantage of this implementation is that there's no obvious connection between the code and the function it's trying to compute.
We can use HOFs to express directly the definition of primality: a positive integer >1 is prime iff its only factors are itself and 1.
The KEEP finds all the factors of n, and the block reports True iff those factors are 1 and n.
This version is much better pedagogically (suppose you're teaching math, rather than computer programming), but it's really impractical for large n. It has to generate the list of numbers from 1 to n before it can even begin working on the actual primality testing.
Streams let us have our cake and eat it too:
This
looks like the second version, but it
runs like the first! Even though it calls for all the numbers from 1 to n, if you ask for PRIME?(1000000) you get an instant False. (Of course all the versions are pretty slow if the number is in fact prime, because all three versions have to check all the possible factors (modulo the √n optimization in the first one, which I could have applied to the other versions also, except that the idea is to have exactly the definition of primality visible in the code.))
So any constant factor slowness of the stream implementation is kind of beside the point, which is the huge speedup in situations in which you can short-circuit the computation.
Having said that, if you can implement streams faster, more power to you!
P.S.:
This is kind of funny, because Snap! is Scheme, just with a slightly different notation. :~)