But the scope of the variable is local. The storage of the variable isn't. That's when you want to use static. How non-local the storage is isn't that easy to predict, unless you lock it on something (say the first real object parent).
If you have functions created on the fly (lambda or local functions) that contain a static variable, for instance.
Just like breaks, you get to a point where you rather be able to label what it should do.
It's easier to read what it does when it does it in the scope it does it, than chasing what happens in two or more directions.