Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>То есть ещё раз, код C# чисто по построению намного труднее оптимизировать — для оптимизаций до уровней аналогичных C++ нужно либо язык модифицировать, либо делать оптимизаторы намного более мощные чем оптимизаторы C++
Язык тут не при чем. Машинный код генерируется из IL. В нем все указанные тобой оптимизации делаются элементарно.
Но у JIT нет столько времени на пребразования, как у компилятора C++. Поэтому оптимизации оставляют желать лучшего. В теории могли бы делать омтипизации в ngen, но посчитали что одинаковый выхлоп ngen и jit важнее, чем пару мсек скорости.
В Java и JS пошли по пути "HotSpot" — повторная компиляция кусков кода на основе профиля использования.
Для .NET придумали другой способ — генерировать C++ код и потом его компилировать (.NET Native).