It's strange because WORKING-STORAGE and LOCAL-STORAGE sections are supposed to be equivalent within methods. For instance the following program:
class-id a.
method-id main static.
01 obj type a.
set obj to new a
perform 5 times
invoke obj::m
end-perform
end method.
method-id m.
working-storage section.
01 i1 binary-long.
add 1 to i1
display i1
end method.
end class.
...shows the value '1' 5 times, since i1 is reinitialized on each entry to the method.
I should say that the above is based on compiling the code to .NET or JVM.