Ok, so it seems that useradd did set the home dir, (can check by looking at /etc/passwd), but you still did not tell it to creat e it.
I think a careful reading of the useradd man page will clarify what happened.
Create the user's home directory if it does not exist. The
files and directories contained in the skeleton directory
(which can be defined with the -k option) will be copied to
the home directory.
By default, if this option is not specified and CREATE_HOME is
not enabled, no home directories are created.
It seems the last sentence is key here.
-d, --home HOME_DIR
The new user will be created using HOME_DIR as the value for
the user's login directory. The default is to append the LOGIN
name to BASE_DIR and use that as the login directory name. The
directory HOME_DIR does not have to exist but will not be
created if it is missing.
Again, the last sentence seems to apply.