The forms ? and ?? are handled specially. In particular, they allow wildcards, and the wildcard symbol in this context is *. They also seem to assume that everything following is the input and converts it to a string as needed. So it seems you can't use them in a CompoundExpression.
I don't know what you expect in terms of "hints for this problem". That's just the way it works. You could use Information instead
Information["*"](* same output as ?* *)
Information["*;"](* same output as ?*; *)
Information["*"];(* output suppressed *)