Noob here. At first glance it does seem that way, I had the same problem. If you test a short word in your head, it makes sense. Let's use pig.
so result is first empty, so the first iteration will put in the "p" into our string.
result = p
the next iteration will take the "i""
result = "i" + "p" = "ip"
result = "g" + "ip" = "gip"
if you changed it to result = "result" + "i" you would get "pig" back instead.
I don't really understand the other solution mentioned here in the forums, but this solution is super elegant and simple. And for whatever reason the setup mixes up the brain so it doesn't seem to come to someone right away.