\foo is defined without arguments, so TeX does not look for any. Often, {}<space> is used to "terminate" the control sequence for macros without arguments (like this: \foo{}<space>), producing the expansion of the macro plus a trailing space, but this is by no means required, and \foo\<space> accomplishes the same thing.
From that point, since the brace was not used to delimit an argument, { enters a group, which is reported in the log file:
### simple group (level 1) entered at line 6 ({)
Then, the document ends before the group is closed (which is not an error), which is also reported in the log file:
(\end occurred inside a group at level 1)
For some reason, trailing spaces are not shown in inline code fragments here, so I have marked these with <space> because they are important to the discussion at hand. In the actual code, of course, <space> is a single space character.
\newcommand. The following code produces the same effect. \documentclass{article} \begin{document} Why is { indifferent about its closing brace? \end{document} – JPi Sep 03 '16 at 01:21