My thoughts, though possibly ignorant:
It seems like it's doing (almost) what it's supposed to, since you are using my on a false condition, it doesn't "reset" $x..
But why doesn't it complain about global $x if strict is on? Well, my initial thoughts fall back on remembering hearing something about my working compile time, but that's fuzzy at best.
I'm not really sure, but i believe it's doing (almost) what it's supposed to.