You can do "inc %o" instead of "%c = 1" too, but I guess that counts as global, but in that case why would it also keep the earlier value set with var?
As in:
var %x = 1
while (%x <= 10) {
inc %x
}
It keeps the value like it should.
There's a chance I'm too tired, but what's the distinction? As far as I know, you can pretty much mix global and local variables as you like, but in this case it just doesn't work.
EDIT: to rephrase that: if you can use inc, why not unset too?