This is useful in specific cases, e.g. when using torch.autograd.grad (with create_graph=True) to incorporate derivatives in your loss function.
In general, backward accumulates gradients (that’s why you do zero_grad to clear them). Backpropagating the same graph just for the sake of it would be unusual though. It usually is more efficient to only backpropagate once per forward unless you actually have one of those cases where you need the gradient in your loss function or similar.
Best regards
Thomas