То, что вы видите в "C:\\foo\\bar"
, - это текстовое представление строки "C:\foo\bar"
с экранированными обратными слешами для дальнейшей обработки.
Например, если вы создаете строку длиной 1 с символом обратной косой черты:
(make-string 1 ?\\)
вы получите следующий ответ (например, в минибуфере, когда вы оцениваете вышеупомянутое с помощью C-x C-e):
"\\"
Еще один способ получить то, что вы хотите, это включить флаг «literal»:
(replace-regexp-in-string "/" "\\" path t t)
Кстати, вам не нужно избегать косой черты.