Ao examinar o String == operador, notei que ele chama String.Equals(string a, string b), o que significa que é apenas uma passagem.
Examinando o String.Equals(string a, string b)método, vejo que ele faz uma verificação de igualdade usando o ==operador. Como isso está realmente funcionando e não está causando um problema StackOverflowExceptionao fazer algo como "x" == "x"ou"x" == "y" ?
Atualização : informei o JetBrains e eles fizeram disso uma prioridade crítica para o dotPeek. https://youtrack.jetbrains.com/issue/DOTP-6789
Também adicionei um problema no repositório GitHub do ILSpy.

a == b), mas correto em VB.NET:a Is b.