Я полагаю, что проблема заключается только в том, что вы можете использовать инструменты, которые вы используете для вывода строки. Например:
var msg = dojo.toJson({field1: 'string', field2: 84, field3: 'another string'});
alert(msg);
покажет двойные кавычки как неэкранированные. Точно так же при запуске вашего первого примера, когда браузер подключен к прокси-серверу, такому как Charles, двойные квоты отображаются как неэкранированные.
Так что я считаю, что это просто автоматический выход, который делает Firebug / PHP при отображении строк.