Nicolas,
Someone already mentioned John Hughes paper. Another resource is SPJ's
"hair shirt" slides (also discusses type classes and monads).

http://research.microsoft.com/~simonpj/papers/haskell-retrospective/HaskellRetrospective.pdf

Laziness is addressed beginning on slide 19.
I've even read "History of Haskell" paper, and accordingly to it the default laziness was chosen because it was rather unite factor for scientists, not because it had some big advantage:

Then, in the late 70’s and early 80’s, something new happened. A
series of seminal publications ignited an explosion of interest in the
idea of lazy (or non-strict, or call-by-need) functional languages as
a vehicle for writing serious programs.

So, as I understand, choosing default laziness was just experimental design decision in order to answer the question: "how good lazy language can be". I am practically convinced, that lazy evaluation included in the _right_ places can be extremely useful. I didn't state the question as "strict vs lazy", my question is different - "default laziness with optional strict -vs- default strictness with optional lazy". And sorry, but the question remains open.

Best regards,
Nick.