if I were to compute the backward pass for each one of them independently, right?

Autograd just computes the gradients.
If the gradients are independent, then what autograd computes will be independent as well 

Will any of these options make any difference in terms of speed/memory usage?

These three options won’t really make any difference. The only difference between the firrst two is that all the gradients you compute will be scaled by out.nelement().
For the third one, you will just add an extra square backward. So not much of a difference either.
My personal opinion is that 2 or 3 are better as the gradient computed for each independent time serie is independent of the number of time series in total (the first one just has a constant scaling so it’s not the end of the world)
For the squaring, it will depend on your application