Tikz-cd: How can I arrange diagonal arrows parallel?

This is/was a bug in PGF which has been fixed in the current CVS version (although the bounding box of the matrix is not computed correctly). The problem lies in the last column (or rather in the detection of it).

The easiest fix here is to indicate the last column with an explicit & (even though TikZ doesn’t need it). Then the lines are straight (more or less, see below).

You have used \smash[b] from amsmath which is usually not a bad idea. TikZ though provides an easier interface for this, namely the text depth option. Setting it to zero has the same effect as \smash[b] only that you do not need to provide it every time.
(Of course, if you have a node/cell with very high/deep contents you probably shoudn’t use it then; but setting it to an empty string, i.e. text depth={}, disables the option.)

With this option set, we get

enter image description here

The dimension we see are the length of the lines. You will notice that the arrow from A' to A has a slightly greater length than the others. This is not due to an inaccuracy from TeX but because of the smaller height of A compared to all other nodes who have a prime ' in them.

Setting text height to a fixed length (say .7em) or using text height=height("$A'$") (or $A$?) we can also correct this. We can also use the font key to add a vertical zero-width rule with font=\vphantom{A'} so that every node has at least the height of A'.
There also exists a \mathstrut macro we can use here which is nothing else but \vphantom{(} but this is actually lower as A'.

The big difference between \vphantom and text height/text depth is that the settings of the latter will be forced no matter the content. The \vphantom only stretches the node to a minimum height/depth.

The usage will come down to the content of the nodes and each case. Here I would use height("$A'$").

Also, don’t add \\ after the last line. tikz-cd will insert this itself, another only adds an otherwise empty line and thus vertical space.

Code

\documentclass[tikz,convert=false]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{calc} % only for the tm style
\tikzset{tm/.style={to path={% Do not use this!
      coordinate (a) -- coordinate[at end] (b)
        (\tikztotarget) \tikztonodes
        let \p1=($(b)-(a)$), \n1={veclen(\p1)} in node[midway] {\footnotesize\n1}}}}
\begin{document}
\begin{tikzcd}[
  text depth=0pt, text height=height("$A'$"),
  column sep={{{{3em,between origins}}}}]
  A' \arrow[tm]{rd} &                    & B'' \arrow[tm]{rd}   & \\ % <- extra & here
                    & A' \arrow[tm]{ld}  &                      & {A}\amalg_{A'}{B''} \arrow[tm]{dl} \\
  A                 &                    & {{A}\amalg_{A'}{B''}} % <- no \\ here
\end{tikzcd}
\end{document}

Output

enter image description here