Disclaimer: I have only ever dealt with OS-level code on a Motorola 68000. This answer is written from the perspective of a similar, two-ring style system, but the concepts should translate fairly well to modern multi-ring systems.
On a system with two privilege levels, call them user mode and system mode, application program would run in user mode, while the kernel runs in system mode. If a user-mode application tries to run a privileged instruction, a trap occurs so the kernel can decide what to do about the situation.
On the other hand, the kernel already has the privileges to execute whatever instructions it wants to, so no trap is executed.
On the MC680x0 specifically, any trap handler is run in privileged mode by default. So any trap handler can use "return from exception" with no repercussions, and without worrying about generating another trap. And code in user mode shouldn't use such an instruction, as there is no exception from which to return.
In short, the question arises from a false premise; no trap is generated when using "return from exception" to switch to user mode.
SYSEXIT
on x86) can only return to code running with the same privilege or lower. (Well, I imagine if you tried returning to higher privilege code by tweaking the stack in a segmented architecture, you’d cause a trap, but the general “return to user mode” case doesn’t.) – Stephen Kitt Dec 16 '17 at 22:15