Problema potencial em “Trocando valores de duas variáveis sem usar uma terceira variável”

Recentemente, eu vim com esse método para trocar os valores de duas variáveis sem usar uma terceira variável.

a^=b^=a^=b

Mas quando tentei o código acima em diferentes compiladores, obtive resultados diferentes, alguns deram resultados corretos, outros não.

Há algo terrivelmente errado com o código?

questionAnswers(8)

yourAnswerToTheQuestion