Yes, the description in the documentation can be ambiguous, because if the parameter passed is not a simple folder/directory name, but a path to a sub-folder/sub-directory, it is not specified that the parent folder(s)/directory(s) specified in the path must already exist.
Documentation updated: KeyPgMkdir → fxm [clarified the documentation in case of the passed parameter is a path to a sub-folder/sub-directory]
MkDir is based in QB, but also, QB's MkDir is based on DOS's md/mkdir command, which, if I remember well, did not allow for creating chains of directories in one pass either. I am using GNU/Linux and I have just tried mkdir in the console and it also disallows doing this. I'd say this is standard mkdir behaviour.
Somebody new with FreeBasic or with programming in general can, of course, be excused for assuming mkdir is more powerful and indeed, I agree it would be easy and interesting to give it more power, but this could also be a risk. A misbehaved program could easily mess up if it created chains of directories by mistake. And besides, if MkDir is updated, directory deletion should work the same way for consistency, but that'd be even more dangerous. It's really something to discuss!