You may consider this a bug report, however I'm curious if I am terribly wrong here, or if there is an explanation from Eric or someone else at Microsoft.
Update
This is now posted as a bug on Microsoft Connect.
Description
Consider the following class:
class A 
{
    public object B {
        set { }
    }
}
Here, A.B is a write-only but otherwise fine property.
Now, imagine we assign it inside of expression:
Expression<Func<A>> expr = 
    () => new A {
        B = new object { }
    };
This code makes C# compiler (both 3.5.30729.4926 and 4.0.30319.1) spit out
Internal Compiler Error (0xc0000005 at address 013E213F): likely culprit is 'BIND'.
and crash.
However, merely replacing object initializer syntax ({ }) with a constructor (( )) compiles just fine.
Full code for reproduction:
using System;
using System.Linq.Expressions;
class Test {
    public static void Main()
    {
        Expression<Func<A>> expr = 
            () => new A {
                B = new object { }
            };
    }
}
class A {
    public object B { set { } }
}
(And yes, I did hit it working on a real project.)
 
     
     
    