ツッコミありがとうございます。歴史的経緯を知らないので、目ウロコでした。結城さんの文章にもツッコミがありますね ;-)。
これ、単純に気付いていなかったというのもありますが、そもそもリスト内包表記における、
[ x | x <- [1..10], x `mod` 2 == 0 ]
とかいったコードがあるとすると、 x に何かが代入されるイメージなので、リストそのものではなく
現在も糖衣構文は糖衣構文なので、
[ x | x <- return 1 ]
などとやっても OK なのですね。何の意味があるかはともかく。 List がモナドであることの影響がこんなところにもという感じであります。