I clicked Kpym and Tarass's links and in fact Loop Space gives the reason.
Briefly speaking, TikZ invented anchor to help you put nodes at the desired position. In this case, we are putting labels, which are nodes internally, lacking the information of which anchor is used.
Obviously TikZ uses the anchor on the edge if the inout angle is about 90x, and uses the anchor at the corner otherwise. What is not obvious is that TikZ implemented two mechanisms to do so: normally it is \tikz@auto@anchor deciding the anchor; with absolute option it is \tikz@compute@direction. Perhaps the most obscure thing is that they do not always return the same result:

\documentclass[border=9,tikz]{standalone}
\usetikzlibrary{shapes.misc}
\begin{document}
\def\r{100cm}\def\s{10cm}\def\t{1cm}
\tikzset{
every label/.style={draw=black,inner sep=0,minimum size=\t}
}
\begin{tikzpicture}
\clip(0,\r)+(-\s,-\s)rectangle+(\s,\s);
\draw(0,0)node[draw,circle,minimum size=\r*2,
label=90:90,label=91:91,label=92:92,label=93:93,label=94:94,label=95:95]{}
(0,0)edge(90:\r) edge(91:\r) edge(92:\r) edge(93:\r) edge(94:\r) edge(95:\r);
\end{tikzpicture}
\begin{tikzpicture}[absolute]
\clip(0,\r)+(-\s,-\s)rectangle+(\s,\s);
\draw(0,0)node[draw,circle,minimum size=\r*2,
label=90:90,label=91:91,label=92:92,label=93:93,label=94:94,label=95:95]{}
(0,0)edge(90:\r) edge(91:\r) edge(92:\r) edge(93:\r) edge(94:\r) edge(95:\r);
\end{tikzpicture}
To create a \tikz@whatever@called which is continuous with respect to the input angle, and hence prevent the gap, the final \tikz@anchor should either
- be fixed; or
- vary continuously with respect to the input angle.
Loop Space implement the first possibility, in which the anchor center is the default choice.

\makeatletter
\tikzset{
reset label anchor/.code={%
\let\tikz@auto@anchor=\pgfutil@empty
\def\tikz@anchor{#1}
},
reset label anchor/.default=center,
every label/.append style={reset label anchor}
}
\makeatother
\begin{tikzpicture}
\clip(0,\r)+(-\s,-\s)rectangle+(\s,\s);
\draw(0,0)node[draw,circle,minimum size=\r*2,
label=90:90,label=91:91,label=92:92,label=93:93,label=94:94,label=95:95]{}
(0,0)edge(90:\r) edge(91:\r) edge(92:\r) edge(93:\r) edge(94:\r) edge(95:\r);
\end{tikzpicture}
I implemented the second possibility. In case the input angle is, say, 95, the output anchor is 275. In general, I add 180 to the input.
Therefore, if you extend the line connecting the parent and child nodes, it pass through the two centers, regardless its shape. (For circle labels, the distance is unstable because TikZ adds mandatory fix designed for rectangle labels.)

\tikzset{
every label/.append style={cross out},
every edge/.append style={shorten >=-1cm}
}
\makeatletter
\def\tikz@compute@direction#1{
\let\tikz@do@auto@anchor=\relax
\pgfmathsetcount{\c@pgf@counta}{#1+180}
\def\tikz@anchor{\the\c@pgf@counta}
}
\begin{tikzpicture}[absolute]
\clip(0,\r)+(-\s,-\s)rectangle+(\s,\s);
\draw(0,0)node[draw,circle,minimum size=\r*2,
label=90:90,label=91:91,label=92:92,label=93:93,label=94:94,label=95:95]{}
(0,0)edge(90:\r) edge(91:\r) edge(92:\r) edge(93:\r) edge(94:\r) edge(95:\r);
\end{tikzpicture}
\begin{tikzpicture}[label distance=0.5cm] \foreach \Angle in {1,2,...,360} \node[draw,circle, minimum size=10cm,label=\Angle:a] (c1) at (0,0) {}; \end{tikzpicture} \end{document}`
– Gonzalo Medina Aug 08 '15 at 15:32pin:\tikz\foreach~in{0,...,359}\node[circle, minimum size=10cm, thick,pin=~:.]{};– Kpym Aug 08 '15 at 16:14\tikz\draw[draw=red]foreach~in{0,...,99}{(0,0) node[circle, minimum size=4cm,thick,pin=~:.]{}(~:2)--(~:2.1)};you can see that the imprecision is everywhere ... – Kpym Aug 08 '15 at 16:34