Does one need to know all about Windows to be able to use it effectively?
What makes you think one needs to know all about UNIX to use it effectively?

Good memory is not necessary, too. "[command] --help" will usually give a list of parameters with short descriptions. Commonly used commands will be memorized automatically (how can you not remember "ls" if you are typing it 100 times / day?).

I don't think UNIX users intentionally memorize commands and such (well... maybe some do. I certainly don't, and I am still able to use it effectively and efficiently).