In .NET 5 CoreCLR is adding support for covariant return overrides. See the [language spec](https://github.com/dotnet/csharplang/blob/master/proposals/covariant-returns.md) and the [runtime design doc](https://github.com/dotnet/runtime/blob/688c2638733839d302676eb6ebb022cb592925a7/docs/design/features/covariant-return-methods.md) for more details. The runtime support for CoreCLR is still WIP [here](https://github.com/dotnet/runtime/pull/35308). There's also a user story tracking this work - 1096979.