colname coltype DEFAULT 5! GENERATED ...
Since b_expr allows postfix operators, it takes one more token of
lookahead than we have to tell if the default expression is "5!"
or "5!GENERATED ...".

ISTM that as long as:
colname coltype DEFAULT (5!) GENERATED ...
works I don't see why it would be a problem to require the parentheses
in this case. Postfis operators are not going to be that common here I
think.
Have a nice day,