To add to what Charles M posted, Don't forget that LA in AMODE 31 always zeroes bit 32, and LA in AMODE 24 zeroes bits 32-39 of the 64-bit GR. That's another way that they are not functionally equivalent, if that difference matters to you.
A good rule of thumb is that when you have equivalent alternatives, choose the one that has the smallest instruction byte footprint. BCTR is a 2 byte instruction. But don't sacrifice the readability of your code. Peter Relson z/OS Core Technology Design
