A static method can of course mutate an object of the same class (give the object as an argument (direct or indirect) or use a static variable of the class)
I can not see how they could be used to help escape analysis more than that you have one less reference (this).
Yes, of course that's possible. I was trying to point out their usefulness to the programmer as well as potentially to the runtime/JIT. Next time I'll list the obvious exceptions!
I can not see how they could be used to help escape analysis more than that you have one less reference (this).