Assuming the machine is running a Linux kernel, sessions make use of the Bash shell and everything is using default configurations (no user has made any changes to config files), can we assume that the
$HOME environment variable is always set?
Yes. The POSIX specification requires the OS to set a value for $HOME:
The system shall initialize this variable at the time of login to be a pathname of the user's home directory. See pwd.h.
What about user
# su - nobody No directory, logging in with HOME=/ $ echo $HOME /
nobody has no true home,
HOME is set to the root directory.