Here at Doron's post about Object Initializers he raised a question about the IL generated from the compiler while generating Object Initializer.
//Object Initializer
GeoPoint point1 = new GeoPoint() {
X=22.555,
Y=36.444,
CoordinateSystem=GeographicCoordinateSystem.Wgs84 };
//Associative Init
GeoPoint point3 = new GeoPoint();
point3.X = 22.555;
point3.Y = 36.444;
point3.CoordinateSystem= GeographicCoordinateSystem.Wgs84;
That two samples are not the same, this is because of not having an atomic assignment possibility at the second piece of code.
you can have further reading at Bart's blog post.
Enjoy.