I'd say that memorizing all the ( even just the GNU toolkit ) programs and their functions would be a bit excessive. Nevertheless feel free to do so if you'd like. It just doesn't seem like it'd be worth all the trouble.
Unless you have an eidetic memory, in which case it's no trouble at all.
Personally I remember most of the commands I need simply because I use them so often. If there's something you can't remember there's always the internet, "man -k $TOPIC", or some sort of reference book.
I happen to prefer analog references over digital, so my copy of Linux in a Nutshell is quite well worn. The internet suffices for many people though, I'm just an odd computer geek.