It's interesting, so the error is in the algorithm that disappears the decorations when the line is finished, for example, if I use a defined length to position them, if they exceed the length of the line, the points disappear as the next result.
\foreach \distance in {0.9,1.92,...,2.5}
...
...mark=at position \distance cm with ... % position in cm.

In my first iteration probe with varying the position by percent of line:
\foreach \distance in {0.90,0.91,...,1.05}

The first observation is that the foreach algorithm when calculating the step, adds decimals, is not limited to the decimals of the step. If I make the steps in thousandths, I get this.
\foreach \distance in {0.99,0.991,...,1.01}

Here you can see that the error occurs, even with values close to 1, then, probe with values close to 1 increasing the accuracy with more decimals, and I got this.
\foreach \distance in {0.9,0.99,0.999,0.9999,0.99999,0.999999,1,1.0009}

As you can see the error is caused when approaching in 4 cecimals.The algorithm that locates the origin of the decoration in the line has a limited exatitude, probably due to the calculation length of the variables, while the bend angle, makes the ongitude of this line have a value with more or less decimals, that make the other algorithm that decides where the mark disappears can not decide the limit correctly. Will there be some configuration to increase the calculation bits in the algorithms?
MWE:
% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: animate: {density: 200, delay: 200, other: -background white -alpha remove}
% arara: showanimate
\documentclass[tikz,border = 2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\foreach \distance in {0.9,0.99,0.999,0.9999,0.99999,0.999999,1,1.000009}
{
\begin{tikzpicture}
% fill circle and plot
\foreach \angle in {0,10,...,80}{
\draw[decoration={markings, mark=at position \distance with {
\fill[red] (-1pt,-1pt) rectangle (1pt,1pt);
}}, postaction={decorate}] (0,0)to[bend right=\angle](\angle:2);
}
\draw (-0.5,-0.2) rectangle (2.5,2.5);
\node (a) at (1,2.25) {\tiny Mark position=\distance } ;
\end{tikzpicture}
}
\end{document}
For Animation I use ImageMagic portable version, embedded in arara in animate yaml file.
mark=at position 0.99instead ofmark=at position 1. Seems like some round off error. – Peter Grill May 15 '18 at 20:01mark=at position -0.1ptworks. If we replace-0.1ptwith factor1, the example will also fail. So this might be an issue known by the author. Maybe you should just avoid using1in a complex curve. – wklchris May 16 '18 at 20:58