There is no problem with your usage but the developers of TikZ updated the CVS version of the math library. The culprit seems to be in the division algorithm so if I copy the relevant part of the CVS version into the stable release (v2.10) it works as expected.
Since a small perturbation is enough for the workaround, this code below is only for demo purposes.
\documentclass[draft]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\makeatletter
\def\pgfmathdivide@@{%
\let\pgfmath@next=\relax%
\ifdim\pgfmath@small@number pt<\pgfmath@x%
\ifdim\pgfmath@small@number pt<\pgfmath@y%
\ifdim\pgfmath@y>\pgfmath@x%
\ifpgfmath@divide@period%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}%
\pgfmath@divide@periodfalse%
\fi%
\pgfmathdivide@dimenbyten\pgfmath@y%
\ifdim\pgfmath@y>\pgfmath@x%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}%
\fi%
\else%
\c@pgfmath@counta=\pgfmath@x%
\c@pgfmath@countb=\pgfmath@y%
\divide\c@pgfmath@counta by\c@pgfmath@countb%
\pgfmath@ya=\c@pgfmath@counta\pgfmath@y%
\advance\pgfmath@x by-\pgfmath@ya%
\def\pgfmath@next{%
\toks0=\expandafter{\pgfmathresult}%
\edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}%
}%
\ifpgfmath@divide@period
\else
\ifnum\c@pgfmath@counta>9 %
\expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@
\advance\c@pgfmath@counta by-10 %
\ifnum\c@pgfmath@counta=0
\let\pgfmath@next=\relax
\fi
\fi
\fi
\pgfmath@next
\fi%
\let\pgfmath@next=\pgfmathdivide@@%
\fi%
\fi%
\pgfmath@next%
}
% advances the last digit found in the number. Any missing digits are
% supposed to be filled with 'C'.
\def\pgfmathdivide@advance@last@digit#1.#2#3#4#5#6#7\@@{%
\pgfmath@ya=\pgfmathresult pt %
\if#2C%
\pgfmath@xa=1pt %
\else
\if#3C%
\pgfmath@xa=0.1pt %
\else
\if#4C%
\pgfmath@xa=0.01pt %
\else
\if#5C%
\pgfmath@xa=0.001pt %
\else
\if#6C%
\pgfmath@xa=0.0001pt %
\else
\pgfmath@xa=0.00001pt %
\fi
\fi
\fi
\fi
\fi
\advance\pgfmath@ya by\pgfmath@xa
\edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}%
}%
{
\catcode`\p=12
\catcode`\t=12
\gdef\Pgf@geT@NO@TRAILING@ZERO#1.#2pt{%
#1.%
\ifnum#2=0 \else #2\fi
}
}
\def\pgfmath@tonumber@notrailingzero#1{\expandafter\Pgf@geT@NO@TRAILING@ZERO\the#1}
\makeatother
\begin{document}
\begin{tikzpicture}
\foreach \x[count=\xi] in {1.999,2.0,2.001}{
\coordinate (a\xi) at (-4,\x);
\node at (0,\xi) {\pgfmathparse{-4/\x}\pgfmathresult};
\node at (2,\xi) {\pgfmathparse{atan(-4/\x)}\pgfmathresult};
\node at (4,\xi) {\pgfmathparse{atan2(-4,\x)}\pgfmathresult};
}
\end{tikzpicture}
\begin{tikzpicture}
\coordinate [label=below:{$B$}] (B) at (-6,0);
\coordinate [label=below:{$C$}] (C) at (0,0);
\coordinate [label=above:{$A$}] (A) at (-4,1.999);
\draw let \p1=($(B)$),\p2=($(A)$) in
(-1,0) arc (atan2(\x1,\y1):atan2(\x2,\y2):1);
\draw (B) -- (C) -- (A);
\end{tikzpicture}
% A = (-4,2)
\begin{tikzpicture}
\coordinate [label=below:{$B$}] (B) at (-6,0);
\coordinate [label=below:{$C$}] (C) at (0,0);
\coordinate [label=above:{$A$}] (A) at (-4,2.0);
\draw let \p1=($(B)$),\p2=($(A)$) in
(-1,0) arc (atan2(\x1,\y1):atan2(\x2,\y2):1);
\draw (B) -- (C) -- (A);
\end{tikzpicture}
% A = (-4,2.001)
\begin{tikzpicture}
\coordinate [label=below:{$B$}] (B) at (-6,0);
\coordinate [label=below:{$C$}] (C) at (0,0);
\coordinate [label=above:{$A$}] (A) at (-4,2.001);
\draw let \p1=($(B)$),\p2=($(A)$) in
(-1,0) arc (atan2(\x1,\y1):atan2(\x2,\y2):1);
\draw (B) -- (C) -- (A);
\end{tikzpicture}
\end{document}