Despite the similarity of name, C# and C++ are completely different languages, so you shouldn't expect the same sequence of characters to have the same meaning in both.
It's nonsense to talk of "the correct result", as if all languages should be the same. For example, I might use "lul" as an expression of amusement, but the same word in Dutch means "dick". That doesn't mean Dutch is giving "the wrong result".
It's not some kind of mistake by the standards committee that i = i++ is undefined. It was designed that way on purpose, because C++ and C# have very different design goals.
Your expectation that i = i++ should be equivalent to i = i is based on taking a rule from C# and attempting to apply it in a completely different language where it doesn't fit.