C#って、構造体の初期化で

Point p = { 0, 0 };

これが使えないですよね?

Point p;
p.x = 0;
p.y = 0;

こう書くように解説してる人が多いけど、
やっぱコンストラクタを使いたいので

Point p = new Point( 0, 0 );

こう書くと、スタック上に未初期化のpを作って
コンストラクタで作った{ 0, 0 }なPointを
コピーするみたいですが、激しく無駄が気持ち悪いです。
C++みたく

Point p( 0, 0 );

って書ければいいのにって思います。
お前らは構造体の初期はどうやってますか?
C#のコンパイラが、

Point p = new Point( 0, 0 );

これをきちんと、無駄なコピーをしないように
最適化してくれればいいのに。