/home is where all users usually get their home directories created under.
/home may sometimes reside in a different filesystem (i.e., a separate harddisk, another partition in the same harddisk or even network mounted) than the
/ (main system's filesystem).
For this (and probably other reasons as well), the root user's home directory is normally in a separate directory that resides in the main system's filesystem, thus not risking the chances of not being mounted due to network connectivity or other issues.
All this is configurable and, theoretically, you could have your system root's home under
/home as well, for example
/home/root, but this is not recommended.
~ symbol is just something the shell replaces with the current user's home directory. It is not, per se, a valid path.