Because the original class is final and so the object state needs to be "final" after construction. Since I'm using tricks this is not directly possible so I guarantee the changes to be visible by making volatile calls. Explicit Store Fence is sadly not yet broadly available.