A especificação da CLI do ECMA define um modelo de memória fraca. Isso permite reordenar a ordem de execução do comando (que é útil para o desempenho). Mas escrever código de baixo nível para esse modelo é muito difícil.
E o mais importante - as arquiteturas de processador X86 / AMD64 têm um modelo de memória mais rígido (forte). Como resultado, a Microsoft implementou um modelo de memória mais forte em sua implementação CLR do que o descrito na especificação.
O modelo de memória foi alterado no .NET Core? Potencialmente, essa estrutura pode ser executada em arquiteturas com um modelo de memória mais fraco que o X86 / AMD64.
Além disso, o .NET Core incorpora Mono e outros. E, tanto quanto eu sei, o modelo de memória Mono é mais fraco, corresponde à ECMA.
Neste artigo Apresentando o .NET 5 escrito:
Expanda os recursos do .NET, aproveitando o melhor do .NET Core, .NET Framework, Xamarin e Mono.
Acho que, se não for agora, no futuro esses tempos de execução se fundirão em um único todo.
Abaixo no artigo está escrito:
Estamos no processo de substituir substitutos CoreCLR e Mono um pelo outro. Tornaremos tão simples quanto uma opção de compilação escolher entre as diferentes opções de tempo de execução.
Se eu entendi corretamente, haverá dois (ou mais) tempos de execução. E provavelmente todos terão seu próprio modelo de memória.
Do que estamos falando: Modelo de Memória .