Comportamiento extraño del operador ternario en el depurador en la plataforma x64

Estoy usando una expresión ternaria muy simple en mi código C #:

helperClass.SomeData = helperClass.HasData ? GetSomeData() : GetSomeOtherData();

En ambos casos, las funciones en cada ruta de la expresión devuelven un objeto no nulo, pero si miro el resultado en el depurador, es nulo hasta que lo haga referencia en el código, como usar una afirmación:

Debug.Assert(helperClass.SomeData != null);

Esto parece suceder solo si uso una configuración de plataforma "x64" o "Cualquier CPU" en modo de depuración. Está bien en modo "x86".

Intento ser muy cauteloso antes de asumir que he encontrado un error en el compilador o depurador, pero no puedo encontrar ninguna otra explicación para este comportamiento.

Aquí hay una clase completa para hacer una reproducción, solo llame a SomeClass.SomeAction () en el depurador en modo x64 y avance para verlo:

public class SomeClass {
    public bool HasData;
    public object SomeData;

    private SomeClass() {
        HasData = false;
    }

    public static void SomeAction() {
        var helperClass = new SomeClass();
        // Exhibits weird debugger behavior of having helperClass.SomeData = null after this line:
        helperClass.SomeData = helperClass.HasData ? GetSomeData() : GetSomeOtherData();

        // Note that trying helperClass.SomeData.ToString() returns a debugger error saying SomeData is null

        // But this code is just fine
        //if(helperClass.HasData) {
        //    helperClass.SomeData = GetSomeData();
        //} 
        //else {
        //    helperClass.SomeData = GetSomeOtherData();
        //}

        // In both cases though, after this line things are fine:
        Debug.Assert(helperClass.SomeData != null);
    }

    private static object GetSomeData() {
        return new object();
    }

    private static object GetSomeOtherData() {
        return new object();
    }
}

¿Me falta algo o es un error en el depurador x64? Estoy usando el modo de depuración para que no haya optimizaciones presentes.

Respuestas a la pregunta(2)

Su respuesta a la pregunta