The discussion is the meaninglessness of the parentheses. ⇔ is indeed commutative and associative which means that we can define removing the parentheses as equivalent. However it is equally valid to not do this and define an n-ary '⇔' operator that evaluates ⇔(a1..an) as all ai have the same value. The result is different semantics for A⇔B⇔C.
I've taught and always assume ((A⇔B)⇔C). I've apparently used (A⇔B)&(B⇔C) once.
I've taught and always assume ((A⇔B)⇔C). I've apparently used (A⇔B)&(B⇔C) once.