Вы можете прочитать подробное объяснение статического ключевого слова на MSDN , но я думаю, что лучше всего объяснить эту цитату
Хотя экземпляр класса содержит отдельную копию всех полей экземпляра класса, для каждого статического поля существует только одна копия.
Я полагаю, что это может быть направлено в адреса памяти и смещения, используемые компилятором. Из того, что я помню в моем курсе по компиляции в школе, расположение переменных вашего экземпляра будет храниться в виде смещений от первой ячейки памяти, где хранится объект. Поскольку существует только одна копия статического поля, для доступа к значению статического поля никогда не будет фиксированного смещения.
Что касается неоднозначности имен, это может быть так же просто, как коллизия имен внутри чего-либо, например таблицы символов. Тем не менее, может быть легко провести более глубокое техническое рассмотрение.