There's another difference between returns and goto's.

Goto jumps to a specific point. Return jumps back to the instruction following the one
that called the function or subroutine. Return can return to various places, depending
on where it was called from.