On the other hand, we can’t change Head for Graph symbol also. So, is it Graph treated in a special way in Wolfram Language? If it’s true then It may explain why TreeForm behaves in such a way.
I suppose the situation is similar to the rational numbers: AtomQ[2/3] is True, but FullForm[2/3] is Rational[2, 3]. It feels like an inconsistency, and the matter was raised in the past in the forum. My vague recollection is that there must be a serious design issue behind it, but I don’t know what it is.
It’s strange. If Graph is an atom than why we can browse Graph in FullForm?
I believe this is because certain critical operations that Mathematica must do, such as serializing (think Compress, using WSTP or WXF or just Save) an expression, either requires (1) special and separate treatment of each and every atomic type or (2) a means to convert an atomic expression into an equivalent compound one, and back.
(1) is unfeasible. There are too many atomic types. Many exist for performance reasons. Thus most of the time (2) is used.
Don’t be fooled by Graph having a compound form. It really is an atom, and its compound representation would only be equivalent to its true internal representation in an ideal world. It’s fairly common for bugs in Graph to reveal differences between the two …
E.g. Graph3D[KaryTree[5], PlotTheme -> "CoolColor"] fails. Graph3D[Uncompress@Compress@KaryTree[5], PlotTheme -> "CoolColor"] works. I used Compress to effectively cycle the graph through its compound representation.