Another attempt where tikzmark is defined so that each term is a node and simply connect the node with \draw (A) to[bend left=angle] (B);

\newcommand\tikzmark[1]{%
\tikz[remember picture,baseline=(#1.base)]
\node[inner sep=0,outer sep=3pt] (#1) {#1};
}
Code
\documentclass[border=2cm]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
%\usepackage[margin=1cm]{geometry}
\newcommand\tikzmark[1]{%
\tikz[remember picture,baseline=(#1.base)]
\node[inner sep=0,outer sep=3pt] (#1) {#1};%
}
\begin{document}
\tikzmark{ABC} = \tikzmark{DEF} + \tikzmark{GHI} + \tikzmark{JKL}
\begin{tikzpicture}[remember picture,overlay,>=stealth]
\draw[->,red] (GHI) to[bend left =60] (DEF);
\draw[->,red] (JKL) to[bend left =60] (GHI);
\draw[->,red] (JKL) to[bend left =60] (DEF);
\draw[->,blue] (GHI.north) -- ++(0,12pt) -| (DEF.north);
\draw[->,blue] (JKL.north) -- ++(0,12pt) -| (GHI.north);
\end{tikzpicture}%