At the bottom it computes both the value and the derivative of x^3 at x=2. x^3 is 8 and 3x^2 is 12.
For comparison, symbolic differentiation is implemented halfway down http://norvig.com/paip/macsymar.lisp where there are the rules you learn in calculus class, lines like
(d (u + v) / d x = (d u / d x) + (d v / d x))
which means code that looks at the formula as source code and rewrites it. It blows up in the example the OP brings up, because it's working on an expression instead of on a DAG; I think if you made up a DAG-adapted symbolic differentiator it could output a compact sequence of formulas for the derivative, though I haven't tried it. It should be equivalent to symbolically evaluating the code from autodiff.py.