More technically, "return" tells the object processing code the current object is finished for now, but keep processing it. "End" tells the code that this object is finished and stopped. "Break" tells the code to stop processing the object for now, but come back to this spot when it picks back up.
In the vast majority of situations, you want to use "return". Also, when "end" appears in startup, it does not mean much since it will only stop for startup processing. All other processing still works fine. During normal processing, "end" will only stop Idle, Activate, and Touch (Arb0) from responding. Any arbitrary can still be called manually.
Course, it has been a couple of years since I have looked at the disassembly to these commands, so my memory may be shaky.
---T.Geiger