The dictionary isn't doing anything to your string. The debugger, or more specifically the expression evaluator, will alter the format of a displayed string when it contains newline characters. The end goal is to make it display better on the single line the debugger typically has for values.
I recently did a blog post which goes into detail about what the debugger does and the reason behind the design
EDIT
I believe there is a bug in your sample code. I think you left at @
symbol off of the value in the add of the Dictionary. Without the @
symbol I do not get your repro but with it I do. Assuming the @
is missing though ...
The reason why you see the string with extra escapes is that the debugger always displays strings as string literals and not verbatim strings. In a string literal you need the double escape to match the equivalent code in the verbatim string. Hence \n
becomes \\n