In your code, you compute the projections of the 3d coordinates on the screen. That is, the calc syntax returns the x and y components 2-dimensional screen coordinates, which are not to be confused with the components of the 3d or main coordinates, i.e. those defined by calling \tdplotsetmaincoords{...}{...}
. You take these projections of the 3d coordinates to form new x and y components of new 3d coordinates.
To illustrate this, consider
\documentclass[convert,border=.3cm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{positioning,calc}
\begin{document}
\tdplotsetmaincoords{0}{10}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (A) at (1,1);
\path let \p1=(A),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in (\n1,\n2,0) coordinate
(B);
\coordinate (C) at (1,1,0);
\begin{scope}[tdplot_screen_coords]
\coordinate (D) at (1,1);
\coordinate (E) at (1.16,0.81);
\end{scope}
\draw let \p1=(A),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in (0,0,0)--
node[pos=0.95,above left,sloped] {\pgfmathsetmacro{\myx}{\n1}
\pgfmathsetmacro{\myy}{\n2}$A=(\pgfmathprintnumber{\myx},\pgfmathprintnumber{\myy})$}(A);
\draw[red] let \p1=(B),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in
(0,0,0)-- node[pos=0.95,below left,sloped] {\pgfmathsetmacro{\myx}{\n1}
\pgfmathsetmacro{\myy}{\n2}$B=(\pgfmathprintnumber{\myx},\pgfmathprintnumber{\myy})$}(B);
\draw[blue] let \p1=(C),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in (2,0,0)
-- node[pos=0.95,above right,sloped] {\pgfmathsetmacro{\myx}{\n1}
\pgfmathsetmacro{\myy}{\n2}$C=(\pgfmathprintnumber{\myx},\pgfmathprintnumber{\myy})$}(C);
\draw[green] let \p1=(D),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in (2,2,0)
-- node[midway,above,sloped] {\pgfmathsetmacro{\myx}{\n1}
\pgfmathsetmacro{\myy}{\n2}$D=(\pgfmathprintnumber{\myx},\pgfmathprintnumber{\myy})$}(D);
\draw[orange] let \p1=(E),\n1={\x1*1pt/1cm},\n2={\y1*1pt/1cm} in (-2,2,0)
-- node[midway,above,sloped] {\pgfmathsetmacro{\myx}{\n1}
\pgfmathsetmacro{\myy}{\n2}$E=(\pgfmathprintnumber{\myx},\pgfmathprintnumber{\myy})$}(E);
\foreach\x in {0,1,2}
\draw[gray,thin] (\x,-.3,0) -- ++(0,2.6,0);
\foreach\y in {0,1,2}
\draw[gray,thin] (-.3,\y,0) -- ++(2.6,0,0);
\end{tikzpicture}
\end{document}

Here,
A
is defined to sit at (1,1)
in the main coordinates. They correspond to (1.16,0.81)
in the screen coordinates.
- Now
(1.16,0.81)
is used to define B
, where the coordinates have their meaning in the main coordinates. So you are telling TikZ to place B
at (1.16,0.81,0)
in the main coordinates.
C
is defined at (1,1,0)
in the main coordinates. It coincides with A
.
D
is defined to sit at (1,1)
in the screen coordinates. It does not coincide with any of the points before, but the angles DOA
and AOB
coincide. This is the difference between active and passive transformations.
E
is defined to sit at (1.16,0.81)
in the screen coordinates, and thus coincides with A
and C
.
Overall, the point is that there are two coordinate systems. The main coordinates system which is used to define the points and which originates from an orthographic projection of 3d coordinates. And then there are the screen coordinates, which are those in which calc
works.
Actually, there is one more thing to consider in your MWE.
\documentclass[convert,border=.3cm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{positioning,calc}
\begin{document}
\tdplotsetmaincoords{0}{10}
\begin{tikzpicture}[tdplot_main_coords]
\foreach\x in {0,1,2}
\draw[gray,thin] (\x,-.3,0) -- ++(0,2.6,0);
\foreach\y in {0,1,2}
\draw[gray,thin] (-.3,\y,0) -- ++(2.6,0,0);
\coordinate (A) at (1,1);
\draw (0,0,0)--(1,1);
\path let \p1=(A) in coordinate (B) at (\x1*1pt/1cm,\y1*1pt/1cm,0);
\draw[red] (0,0,0)--(B);
\path let \p1=(A) in coordinate (C) at (\x1,\y1);
\draw[green] (2,0,0)--(C);
\foreach\x in {0,1,2}
\draw[gray,thin] (\x,-.3,0) -- ++(0,2.6,0);
\foreach\y in {0,1,2}
\draw[gray,thin] (-.3,\y,0) -- ++(2.6,0,0);
\end{tikzpicture}
\end{document}
When you define C
, you define it with two components both of which have units. TikZ takes these to be screen coordinates again. Why? Because these are just some dimensionful coordinates and this is how the parser treats it. On the other hand, and yes, this is really confusing, if TikZ sees a dimensionful 3d coordinate, it will strip of the dimensions and takes the resulting coordinates to be in the main coordinate system. Yes, this is truly confusing. This behavior is indeed a bit odd. Here is an attempt to summarize it.
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{|r|>{\centering\arraybackslash}p{5cm}|>{\centering\arraybackslash}p{5cm}|}
\hline
& dimensionful & dimensionless \\
\hline
2D & screen & main \\
3D & convert dimension to points, strip units off, and interpret the result in
main coordinate system & main\\
\hline
\end{tabular}
\end{document}

The maintainers of TikZ are actually aware of this, see this commit, which deals with the fact that a projection is a projection and implies loss of information.
See here for a way to store the 3d coordinates in pgfkeys.
at (\x1*1pt/1cm,\y1*1pt/1cm)
without the third coordinate,0
?screen coordinates
and the coordinates to define the point are the main coordinates.calc
necessary and I do not know its logic. But usually when you specify units in a coordinate (for instance(3pt, 4cm)
) then it is interpreted as real world lengths. I thought that is the chance.