The [ ] brackets force evaluation of items inside the brackets before items outside of them can be evaluated.
In this case, $+ [ $+ b ] is saying: append b to the $+ outside of [ before it can be evaulated. This results in $+b.
$+anything is treated as $+ (which I think has always been the case).