Consider the following code from egreg:
\documentclass{article}
\newcommand{\strutarrow}[2]{%
\vrule width 0pt height 2\fontdimen22
\ifx#1\displaystyle\textfont\else
\ifx#1\textstyle\textfont\else
\ifx#1\scriptstyle\scriptfont\else
\scriptscriptfont\fi\fi\fi 2
{#2}%
}
\newcommand{\srightarrow}{%
\mathrel{\mathpalette\strutarrow\longrightarrow}%
}
\begin{document}
\fbox{$\srightarrow$}
\end{document}
As can be seen, the long arrow is composed of line segment and shorter arrow.
How do I "fix" this so that there isn't a dent in the arrow?
\DeclareRobustCommand\joinrel{\mathrel{\mkern-3mu}}
you could redefine it to be-4mu
and have more overlap and a slightly shorter arrow or use a font that has long arrows that don't need building up like: → ⟶\longrightarrow
, but it's only a question of font hinting.