Хотя, я должен признать, что я не вижу смысла делать это. Если вы действительно хотите, чтобы a принимал литеральное значение 'hello' внутри этой области действия, то зачем создавать другую область? С a, являющимся нормальной переменной, объявленной как a = 'hello', будет достаточно. Теперь, если вы хотите заменить a на значение другой переменной (которая может измениться в цикле или что-то еще) и сделать do (a = b) ->, то я думаю, что это имеет смысл, но вы можете просто сделать do (a) -> и просто использовать a вместо b внутри области do.
Ответ 2
Если вы используете Module Pattern, полезно использовать $global при использовании нескольких библиотек Javascript, которые могут конфликтовать друг с другом