I believe the quote is saying that .backward() is hard to reason about (not .grad()). .grad() is actually the preferred alternative because (by default) it’s more explicit about what inputs its computing gradients for. Its also returns the gradient instead of performing a side effect like updating .grad.