Using the internal forms allows for better error checking. Suppose you have
\newenvironment{fooA}
{\begin{itemize}}
{\end{itemize}}
\newenvironment{fooB}
{\itemize}
{\enditemize}
If you forget \end{fooA} you'll receive a message about
! LaTeX Error: \begin{itemize} on input line 13 ended by \end{document}.
but if you forget \end{fooB} the message will be
! LaTeX Error: \begin{fooB} on input line 13 ended by \end{document}.
In some cases, the internal form is mandatory, for instance when defining new verbatim environments with the verbatim package or when using environments defined with \NewEnviron from the environ package. Another important case is when you define new environments on top of the amsmath display ones.
In some cases, however, the internal form is to be avoided, the main one being lrbox: using \lrbox and \endlrbox is always wrong.
environ. Soprooftreesneeds to use\forest ... \endforestas\begin{forest} ... \end{forest}won't work. But I agree that in standard cases, it is hard to think of a reason to prefer the macro version. – cfr Aug 21 '16 at 20:54