Isso depende muito do shell e da ordem em que as expansões são feitas nessas camadas.
~$user expande para o diretório inicial do usuário cujo nome está armazenado em $user in csh (de onde vem esse recurso ~user ), AT & T ksh, zsh, fish.
Note, no entanto, estas variações:
$ u=daemon/xxx csh -c 'echo ~$u'
/usr/sbin/xxx # same in zsh/fish
$ u=daemon/xxx ksh93 -c 'echo ~$u'
~daemon/xxx
$ u=daemon/xxx csh -c 'echo ~"$u"'
Unknown user: daemon/xxx.
$ u=daemon/xxx zsh -c 'echo ~"$u"'
/usr/sbin/x # same in fish
$ u=" daemon" csh -c 'echo ~$u'
/home/stephane daemon
$ u=" daemon" zsh -c 'echo ~$u'
~ daemon # same in ksh/fish
$ u="/daemon" csh -c 'echo ~$u'
/home/stephane/daemon # same in zsh
$ u="/daemon" fish -c 'echo ~$u'
~/daemon # same in ksh
Ele se expande para o diretório inicial do usuário chamado literalmente $user in bash (desde que o usuário exista, o que é muito improvável, é claro).
E nem em pdksh , dash , yash , presumivelmente porque eles não consideram $user um nome de usuário válido.