O problema é que $(
inicia a substituição de comando, enquanto $((
inicia a expansão aritmética.
$( (5+2) )
é o comando (5+2)
, ou seja, o comando 5+2
em um subshell. Mas isso não é um comando válido.
$((who))
é substituído pelo valor da variável who
, o que é provavelmente indefinido, ou seja, 0.