Building autograd from scratch changed how I think about every loss.backward() call. Here's what the framework doesn't show you.