expr//HoldForm usually returns identical expressions as input, but sometimes parenthesis are inserted. I tried to interpret this behavior as an attempt to eliminate ambiguity, but some observation shows that it does not seem to be the real purpose.
For some long expressions (that is not trivial to see the real evaluation order), it does not add any parenthesis at all, and removes parenthesis which is unnecessary.
For this case:
It could relate to this issue:https://github.com/halirutan/Mathematica-IntelliJ-Plugin/issues/31
a .. a //HoldForm
Adds parenthesis which doesn't seem to be able to cause any ambiguity without them. Even if they are, as long as the input is valid, it is not necessary.
My question is: Is there some rule Mathematica will insert/remove parenthesis in an expression? And what is the purpose of doing so?