Note: in order to prove that all executions are yielding "2", you have to prove that no execution can read the initial store to array element. In this case, it is almost trivial: there are no executions that can see the array element writes and bypass the freeze action. If there is a this "leakage", such an execution is trivially constructable.

Aside: note that it means that a final field store initialization order is irrelevant for final field guarantees, as long as nothing leaks. (This is what spec alludes to when saying "It will also see versions of any object or array referenced by those final fields that are at least as up-to-date as the final fields are.")

Email codedump link for Could it be possible to observe an intermediate state of a final array during object creation?