¿Por qué se necesitan paréntesis en este cálculo de TikZ?

¿Por qué se necesitan paréntesis en este cálculo de TikZ?

Estoy creando un PDF de varias páginas con TikZ que se utilizará para una animación. Mientras lo hago, aparece este error:

! Missing number, treated as zero.
<to be read again> 

Aquí hay un ejemplo de trabajo mínimo (MWE) que muestra el problema:

\documentclass[tikz]{standalone}

\begin{document}

\def\timesteps{10}                                                                                                                        
\foreach \timestep in {0,1,...,\timesteps} {
  \begin{tikzpicture}

    \path[draw] (0, 0) circle (1);

    \def\initialx{-1};
    \def\initialy{0};
    \def\finalx{0.9};
    \def\finaly{0};
    \def\length{0.1};

    \def\xi{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)}};
    \def\yi{{\initialy+(\finaly-\initialy)*(\timestep/\timesteps)}};

    \def\xf{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)+\length}}; % This line works ...                                        
    %\def\xf{{\xi+\length}}; % ... but this line does not ...                                                                             
    %\def\xf{{(\xi)+\length}}; % ... unless there are parentheses                                                                         
    \def\yf{{\yi}};

    \path[draw, ->] (\xi, \yi) -- (\xf, \yf);

  \end{tikzpicture}
}

\end{document}

La ejecución del MWE produce el resultado deseado: un simple PDF de 11 páginas de una flecha que se mueve por la pantalla. Ahora, comento la línea.

\def\xf{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)+\length}};

y descomentar la línea

\def\xf{{\xi+\length}};

porque son matemáticamente equivalentes. Recibo el error mencionado anteriormente:

! Missing number, treated as zero.
<to be read again> 

Busqué en Google esto en relación con TikZ, y todas las respuestas dicen que se necesitan llaves para un cálculo. Sin embargo, esa línea de arriba tiene llaves, así que no creo que ese sea el problema. Después de probar cosas diferentes, noté que los paréntesis \xiresolvían el problema:

\def\xf{{(\xi)+\length}};

Por lo tanto, mi pregunta es ¿por qué se necesitan paréntesis aquí? Como mencioné antes, pensé que si un cálculo está entre llaves, no es necesario nada más especial. ¿Existe alguna documentación "oficial" que analice esto? Finalmente, soy nuevo en TikZ, así que siéntete libre de mejorar mi código.

información relacionada