A non-programmer wants to learn. Which do I show them: SICP or HTDP? Or does trying to teach them SICP in MirandaHaskell (for the syntax & pattern matching) make more sense?
While it's true that lazy evaluation gives you various useful properties, in eager languages, it makes no sense to have the short-circuiting AND as a function, because functions mean each argument is evaluated (non short-circuiting and is a function). Of course, having a macro wrap the arguments into lambdas would allow you to emulate lazy evaluation quite easily in Lisp, and there's many libraries and utility functions which show how to do it (simple force/delay takes a dozen lines or less to implement in CL).
I actually wonder what practical advantages lazy evaluation usually buys if forced on the entire languages. I usually just use it explicitly only when I need it in Lisp, but I should probably learn me a Haskell someday. (From Haskell's parents, I only know ML).