C#のプロパティ

たとえばJavaとかでは、getter/setterをいちいち書くのが面倒くさい。
といって、publicなフィールドにしてしまうと、その後読み書きするときに何らかの処理をはさみたくなったりsynchronizedにしたくなった時に困るから、面倒くさくても我慢してgetter/setterを書きなさい――というのが一般的なJavaのスタイルだと思う。リスクとベネフィットを秤にかけて、正々堂々publicにする、という手も私はあると思うんですがね。
んで、C#では――プロパティという機能が追加されて、見かけ上単なるフィールドに見えるものに、setter/getterを付けることができるようになった。やったぜこれなら最初はpubilcフィールドにして、必要に応じてプロパティに変えればいいじゃないか。利用者側は書き直す必要がないんだし…と思うところですが、Microsoftのライブラリとか見てもみんな最初からプロパティにしてる。これじゃ意味ねえじゃん、なんでだろ? と思ったら、フィールドとプロパティではバイナリ互換性がないんですな。
これは、.NET Frameworkがタコという解釈でいいんだろうか。