Nimroutines. One thing I'm constantly envying Go for is easy coroutines that can be scheduled across threads. I know the same thing was done for Jester but it would be good to make this the default, easy go-to way of having concurrency in Nim.
Overhaul pragrmas. I don't object to having a lot of pragmas, I appreciate Nim's adaptability and all those details need to be specified somewhere. But pragmas deserve a syntax that is easier on the eyes and the fingertips. Further, all uses for pragmas in the standard library should be evaluated to see if there are any patterns where certain use cases would be better served with their own syntax. Easier Metaprogramming. I played with Metaprogramming in Lisp and its ` notation and while it's still metaprogramming, directly evaluating an object graph is much harder. It would be nice to expand on the area between current macros and current templates. Consolidate and deprecate or flesh out experimental or rudimentary features. What does the effect system do exactly, and does it support me or will it fight me? No clue, so I just don't use it until someone in a forum sings its praises. Distinct types are great but it would be nice if there were a bit more magic in the adaptation process to use them more. Try to push the envelope a bit more on type inference. Try again to achieve it for return types. Get some nice sugar for variant types and expand on the concept. Push the envelope a bit on the ease that allows beginner to get things done more quickly in Python even though Nim is static, that's the magic that brought me to Nim I would very much like to have more of it, please :)