When TeX "grabs" an undelimited argument, leading space tokens are discarded and the outermost level of braces—a pair consisting of an explicit character token of category 1(begin group) and a matching explicit character token of category 2(end group)—are removed if present. In case an undelimited argument is to consist of more than one token, these tokens must be nested into an additional level of braces which in turn are considered the outermost level of braces that is removed.
E.g., the following code-sequences yield the same result (\processtwo is defined in a way where the control-sequence is delimited by a dot while the arguments are undelimited—this way a space in front of the first argument is not skipped by TeX's reading apparatus but is tokenized as space token):
\def\processtwo.#1#2{%
\def\tempa{FirstArg:|#1| SecondArg:|#2|}%
\par{\tt\meaning\tempa}%
}
\processtwo.AB
\processtwo. AB
\processtwo.A B
\processtwo. A B
\processtwo.{A}B
\processtwo. {A}B
\processtwo.{A} B
\processtwo. {A} B
\processtwo.A{B}
\processtwo. A{B}
\processtwo.A {B}
\processtwo. A {B}
\processtwo.{A}{B}
\processtwo. {A}{B}
\processtwo.{A} {B}
\processtwo. {A} {B}
\bye
When TeX "grabs" a delimited argument, leading space tokens are not removed. In case the entire argument is wrapped into braces—i.e., into a pair consisting of an explicit character token of category 1(begin group) and a matching explicit character token of category 2(end group), this outermost level of braces is removed.
E.g., the following code-sequences do not all lead to the same result (\processtwo is defined in a way where the control-sequence and the arguments are delimited by dots. By delimiting the control sequence also it is ensured that a space in front of the first argument is not skipped by TeX's reading apparatus but is tokenized as space token):
\def\processtwo.#1.#2.{%
\def\tempa{FirstArg:|#1| SecondArg:|#2|}%
\par{\tt\meaning\tempa}%
}
\processtwo.A.B.
\processtwo.{A}.{B}.
\processtwo.{A}.B.
\processtwo.A.{B}.
\medskip
\processtwo.A. B.
\processtwo.{A}. B.
\medskip
\processtwo. A.B.
\processtwo. A.{B}.
\medskip
\processtwo. {A}.B.
\processtwo. {A}.{B}.
\medskip
\processtwo.{A}. {B}.
\processtwo.A. {B}.
\medskip
\processtwo. A. B.
\medskip
\processtwo. {A}. B.
\medskip
\processtwo. A. {B}.
\medskip
\processtwo. {A}. {B}.
\bye
\newcommand itself is a macro. The first argument (after an optional * ) denotes the control sequence token that is to be defined. That argument by LaTeX is taken for an undelimited argument consisting of a single token (a single control sequence token). Therefore it makes no difference whether that argument/token is nested in braces or not.
But when it comes to processing brace delimited arguments (→ parameter text with #{-notation), braces do matter. Often from the syntax described in the user manual it is not obvious whether an argument of a user level macro is processed as an undelimited argument or as brace delimited argument.
E.g., the color-package does a lot of processing by means of brace delimited arguments. In order to know about this subtlety, you need to look at the .sty-file or at the commented sources.
\frac12my eyes hurt really bad! :( – Andrea Lazzarotto Nov 24 '16 at 17:32\frac12is easier for my eyes than\frac{1}{2}. I guess I got used to it… – liori Nov 25 '16 at 01:39\frac12will write\frac110see how often it comes up here thatx^16does not work. Ifx^2had not been suggested they would not have triedx^16. It is much simpler for people (and tex to xyz convertors) to say that mandatory arguments are braced. – David Carlisle Nov 25 '16 at 07:34