Mark, I think you've described this well.
I tend to add a "return" to all my procs, which returns 0 by default. It's just an easy way for me to see where they end. I have used this to return values as in
exec @x = myfavoriteproc
It's easier than output parameters to me, or maybe it's an old habit from programming days.