this is an awesome issue  
Definitely the answer has its roots in the C memory buffer where the tensor is stored. The translation of the python slicing indices to C indices can also be an issue
Ideally it should keep giving error beyond 2 as the base tensor does not have any axes for memory referencing