When (La)TeX is "grabbing" an undelimited argument, leading space tokens will be discarded and the outermost level of braces [a pair consisting of a category-code-1-character-token and a matching category-code-2-character-token] will be 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 will be considered the outermost level of braces that will be 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 will not be skipped by TeX' reading apparatus but will be 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 (La)TeX is "grabbing" a delimited argument, leading space tokens will not be removed. In case the entire argument is wrapped into braces [into a pair consisting of a category-code-1-character-token and a matching category-code-2-character-token], this outermost level of braces will be 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 will not be skipped by TeX' reading apparatus but will be 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.