言語はブレイキングチェンジしちゃいけない。
言語で書かれた言葉はただのデータだ。言語以外の何にも依存していない。
バイナリはブレイキングチェンジしなくちゃいけない。効率的な処理のために。しかしバイナリはブレイキングチェンジできない。ソースが公開されてないからだ。ソースが公開されていれば、コンパイラの実装を変えることで新しいプロセッサでより効率的に同じ処理をするバイナリが出来る。
ILがあれば新しいプロセッサでも効率的に同じ処理が出来るだろう。そうなるとILがブレイキングチェンジできなくなる。ILの抽象度はC#と同等なのでブレイキングチェンジしなくて済むだろうと思う。