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.