This is also highly processor dependant. Some processors store the return address in a register. ARM and MIPS do this the called function if it's recursive preserves the register when necessary. Much of the time the X86 spends is bouncing between subroutines and manipulating the stack I've noticed.
Anyhow as to the question, yep that's what you can do under GCC for X86. ARM, MIPS or PowerPC are a different matter.
Cyb