The = is optional, but there are places where it needs to be explicitly used.
Suppose you want to implement a syntax such as \bold{text in bold}. If you look in this witty article by Arsenau, Chen and Eijkhout on TUGboat you'll find

Let's look at the wizard and guru solutions. Both want to remove a brace, but the first one fails in case the user says \bold x. With the guru solution this doesn't happen, because the { is required by the syntax.
More generally, when one wants to remove a token with the \let\next trick, the equal and the space are mandatory. Consider
\def\removeA{\let\next}
\def\removeB{\let\next=}
\def\removeC{\let\next= }
and try them:
\removeA =xyz \show\next
\removeB =xyz \show\next
\removeC =xyz \show\next
In the first case \next will be the character x, not the token immediately following the macro. What about the difference between \removeB and \removeC? Try
\expandafter\removeA\space xyz \show\next
\expandafter\removeB\space xyz \show\next
\expandafter\removeC\space xyz \show\next
Now only the latter makes \next into blank space.
Note that most likely \removeC will appear as the trailing token in the definition of another command, that maybe absorbs an argument, so a space token can be found even without resorting to the trick above for forcing one.
=is optional; but in some cases it is not. – egreg Nov 12 '17 at 09:52\textwidth=6cmis the same as\textwidth 6cm– David Carlisle Nov 12 '17 at 09:55