You do not seriously expect D to copy exactly how Haskel (or any
other similar declarative langauge) treat functions? Does it
really have to be an exact copy? I am not trying to defend D
language designer(s) here, just trying to say that D should have
own style, if there is sense behind it, it does not necessarily
have to conform 100% to any paradigm.
The main reason for me to start using D 10 years ago was the
obvious PRAGMATIC design of the language. I did not start using
it because of (possible) functional orientation. Actually, I
would probably turn my back on D if I saw it promotes declarative
style more than imperative.
I think the current mix of both worlds is the best direction for
D.