Barra invertida y comillas en argumentos de línea de comandos

Es el siguiente comportamiento alguna característica o un error en C # .NET?

Aplicación de prueba:

using System;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Arguments:");
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }

            Console.WriteLine();
            Console.WriteLine("Command Line:");
            var clArgs = Environment.CommandLine.Split(' ');
            foreach (string arg in clArgs.Skip(clArgs.Length - args.Length))
            {
                Console.WriteLine(arg);
            }

            Console.ReadKey();
        }
    }
}

Ejecútelo con argumentos de línea de comando:

a "b" "\\x\\" "\x\"

En el resultado que recibo:

Arguments:
a
b
\\x\
\x"

Command Line:
a
"b"
"\\x\\"
"\x\"

Faltan barras invertidas y comillas no eliminadas en los argumentos pasados al método Main (). ¿Cuál es la solución correcta, excepto el análisis manualEnvironment.CommandLine?