Any definition as a command isn't really a comment, You can not comment out % or { for example, and it is not invisible to other commands.
\fbox
% \ { \hhhh
{aaa}
Boxes aaa as the real comment with % hides all the junk in the line, but any \comment macro will not work in that position, even
\fbox
\comment{xxx}
{aaa}
The argument to \fbox is just \comment and {xxx} and {aaa} are still in the input stream and things go badly wrong.
! Argument of \comment has an extra }.
<inserted text>
\par
l.24 \comment
{xxx}
If you add \ignorespaces to avoid spacing issues then it doesn't expand to nothing so that
\newcommand\comment[1]{\ignorespaces}
\typeout{aaaa\comment{bbb}ccc}
produces
aaaa\ignorespaces ccc
whereas
\newcommand\comment[1]{}
\typeout{aaaa\comment{bbb}ccc}
produces
aaaaccc
Using a trailing #2 to remove space is dangerous unless you know you are in a very restricted context where there will be no {} groups.
\newcommand\comment[2]{#2}
\comment{aaa} {\bfseries bbb} ccc
The ccc will be in bold as the \comment macro will have taken the entire {\bfseries bbb} as #2 but only returned \bfseries bbb without the brace group to the input stream, so the \bfseries is no longer scoped to just bbb.