Code bloks on strict and superstrict have their own local definition scope. That makes code faster in some situations and much more easy to mantain.
I had no idea you could even do that. If I saw that code in someone else's function, I would have assumed they were messy coders, declaring variables in the middle of code instead of at the top, and on top of that declaring the same variable twice!
Actually, even knowing this now I would still consider it a bad practice to declare X twice in the same function even if it is in a different scope. And I'm not sure that even though I now know this I would use it as it makes the code look messy.
But does it really optimize things? That's counterintutive. That seems like delcaring and freeing a bank over and over in a loop. Maybe it speeds up ints and stuff which can be stored in registers though? But what if those are arrays you're declaring and undelcaring there? That can't be good...