I consider a skilled programmer to be somebody to be able to plan, organize and solve complex tasks. Familiarizing with a language is not a big deal. A skilled programmer should be able to solve problems on an abstract level rather than having to rely on a programming language. The better you know a programming language, the more optimized your actual solution for the problem will be and the more built-in features of a language you will use (of course only the stuff he needs, not trying to solve everything with the built-in stuff).
Everybody needs to look up features and commands once in a while, even when working with a language you know quite well. I consider that this is also part of the skill of a programmer. He should be able to identify what he is looking for, to do research, and to find possible solutions in documentation or online. Besides, it's impossible to know all possible functions calls from memory. That's what reference documentation is all about.
EDIT: I have noticed that sometimes when I write code, rather than implementing a function, I mark it as not implemented yet (I use a //2DO or #2DO comment, depending on the language) and add the abstract solution in comments. e.g.
//2DO - implement
// while CPU can act
// execute AI actions
// end player turn
// switch to next player
// start turn for next player
// check victory and defeat conditions
One comment does not necessarily translate into one function and vice versa.