Aten Tensors are fairly recent compared to the old part of the codebase. So some of it was written before Aten tensor with pointers and was changed only to unpack the Tensor.
Also I assume performance reasons as the first one simply computes and offset in memory while the second will actually index the tensor twice.