Ответ 1
Во-первых, нет требования, чтобы мы объяснили причину несоблюдения функции. Особенности чрезвычайно дороги; должно быть оправдание для реализации функции, а не для оправдания не реализации функции.
Во-вторых, С# не является клоном С++ или C. Просто потому, что функция на каком-то другом языке не является основанием для размещения на С#.
В-третьих, "const" глубоко, трагически нарушается на C и С++. "const" не дает вам никакой гарантии, на которую вы можете положиться. Если вы являетесь вызывающим объектом метода, который принимает ссылку на константу, то у вас нет никакой гарантии, что метод почитает константу; метод имеет множество способов мутации константной ссылки. Если вы являетесь потребителем ссылки на константу, то у вас нет гарантии, что базовый объект фактически не будет мутировать произвольно. Поскольку контракт не применяется ни к вызывающему, ни к вызываемому абоненту, он намного слабее, чем любая другая гарантия, которую мы хотели бы сделать в системе типов. Мы не хотели бы реплицировать такую разбитую систему.
В-четвертых, создание константы в системе типа CLR означает, что каждый язык должен будет использовать ту же реализацию constness; поскольку разные языки имеют разные значения для константы, что затрудняет перенос большего количества языков в CLR, а не проще.
Есть много причин не делать эту чрезвычайно дорогостоящую функцию и очень мало причин для этого. Дорогие, необоснованные функции не реализуются.