I suspect it is something to do with HoldComplete and its friends not being real expressions, but rather some kinds of special syntax in the front end or the kernel, but it is a bit surprising since one of the oft-repeated slogans in Mathematica is everything is an expression.