the compiler can't easily prove that a final field does not change within a method (due to reflection / serialization etc.)
most current compilers actually don't try and would therefore have to reload the final field everytime it is used which could lead to a cache miss or a page fault
storing it in a local variable forces the JVM to perform only one load