Не припомню, чтобы это когда-нибудь работало. Сначала парсится вся команда, выполняются подстановки, а уже потом выполняется присваивание в левой части. Чтобы это заработало, нужно как-то так:
Shell
$ FOO=bar bash -c 'echo $FOO'
Только что проверил в bash 4.0 с древнего sysrcd. Всё точно так же, как и в современных версиях.