Yeah, cmd.exe actually can do some other good stuff that almost make it as nice a shell as some of the more primative Unix options.
Yes, cmd can keep a history. With a very slight hack that I don't remember at the moment it can also auto-complete file and directory names, something that makes navigating through directories at a prompt very, very fast if you can type.
DOSkey also offered character substitution, which I don't think cmd.exe does (e.g. doskey 'string1' 'string2'), but cmd DOES have a pretty complete syntax for programming. Moreso that DOS did, anyway.