The THAT pointer is used only for array access... Unlike THIS, it is relevant only for the brief instance an array is being accessed. So if the context switches upon a subroutine call, the caller doesn't care whether THAT is changed or not, since the caller does not expect it to be a particular value...
// let a = someFunc()
call someClass.someFunc 0 // don't really care if the function sets THAT
pop temp 0
push constant 5
pop pointer 1 // THAT is set here