It does. Try:
ToBoxes[TableForm[{1}]] // RawBoxes
and you'll see that it's generating the exact same cell expression as
TableForm[{1}] does. ToBoxes is returning precisely what the kernel sends to
the front end without variation (except, in the general case, for the evaluation
semantics and side effects possibly being different, but that's not an issue in
your example).
The issue is that the front end has two different specifications for specifying
GridBox options...one of which dates back to version 3, and the other, more
expansive set dates to version 6. The front end understands both sets of
options, but canonicalizes anything it receives to the version 6 options.
GridBox is the only box which has had such a wholesale change of options, and it was necessary to support new functionality we added in v6. But the front end
will continue to understand the old options for a seriously long time (probably
forever), as the old options show up not only in certain kernel typesetting
constructs, but in legacy notebook files.
Sincerely,
John Fultz
jfu...@wolfram.com
User Interface Group
Wolfram Research, Inc.