To see it, imagine you have a struct with a data member for each local variable of your function, and replace your function with a member function that has no local variables, but uses "this" to get at what was local data.
Add one more data member, a number that is set differently right before each place the function returns.
Finally, insert some code at the start of the function that, according to the number, jumps to just after the last return statement executed.
Then, each time you call the function, what happens depends on what happened last time.
There are more details, but that is the gist.
You can write that yourself in C++98, with the body of the function inside a switch statement. Getting it past code review would be the real challenge.
Ultimately, though, you are right that you have to understand it all, once, even if you can't remember it all a month later. The explanations I find online are not good at presenting just the details you need when you need them, and building up to the full picture.