Confusion on pop for recursive assembly code
The POP LR instruction just pops a value off the stack and puts that value in LR. But together with the next instruction, BX LR, it does pop a value from the stack and put that in PC. On other architectures that action would be called RET or RETURN.

For a single call to sumi (n==0) the stack is not used: the BX LR causes the return to the instruction after the call to sumi.

For a recursive call, the PUSH LR first pushes the LR value on the stack, then the recursive call happens, after which the LR value is restored and copied to the PC by POP LR; BX LR.

Note: if you don't know the role of the LR in ARM subroutine calls you will definitely have to study that!