What you might want to do is look back at early ng posts about features and see which ones were met with "meh", but universally considered to rok now.
Asking for stuff now will be hard to be unbiased on the surprise issue. If my memory serves, a few things that were "meh" when announced but that rok now are: 1) enum. I remember an argument over if we should call it invariant, manifest, or the relatively unpopular enum keyword, but I don't recall people at the time expecting it to be as useful as it is now. The argument was between manifest MY_VALUE = 1; and enum MY_VALUE = 1; without thoughts along the line of: template octal(...) { alias octalImpl(t) octal; } or most the other stuff we use ctfe with now. (Speaking of octal, I remember that being dismisses as a "hack" by some members too. Now, it looks like that pattern is catching on for user defined literals, and it rox.) My memory might be bad, but looking at some old posts could confirm if the "unlikely success" label is warranted. 2) Leaving the parenthesis off of simple template instantiations is something I was against early on, and now I love it. IIRC, you wanted to use a different symbol entirely, and leaving the parens off was a compromise between the radical Unicode character proposal and Walter's conservative parenthesis. This is a really small change. At the time, it seemed like it would be stupid and useless. But, would templates be as popular now if we didn't make this change? auto a = to!(int)("10"); vs auto a = to!int("10"); to!int feels like one word, unlike to!(int)(). Who needs atoi when we can say to!int? Decls too: Appender!int, etc. The popularity of this in phobos and outside speaks to a success I didn't expect. 3) My mind is coming up blank on a third newsgroup argument over an awesome feature we use now. But, something I am often amazed about is how cool structs are. When you say "struct", I used to think of "whoo a collection of vars, big deal". But, now, with D2, when you say "struct", I think "fully customizable powerhouse". (even coming from C++, where much of this can be done, D's structs are still a little mindblowing in comparison.)