Честно говоря, я даже не могу припомнить, когда мне надо было использовать логическую операцию XOR.
Ну такой выпендрёж, как flag ^= 1, не в счёт, так как может быть выражен как flag = !flag. В обероне, опять же, будет как flag := NOT flag.
Для чего ещё могут быть нужны логические XOR'ы?