I understand that the Link register is used to store the return address after subroutine completes.
This avoids the need to store the return address on stack and return address can be directly copied from LR to PC .This can save some time due to memory access.
But how this works in case of multiple function calls, say F1() calls F2(),F2() calls F3() and F3() calls F4(). Still in this scenario we need to store the previous LR value on the stack memory and will be reading after that.
So is the LR mainly significant for leaf functions.