the tl;dr is that it either would be boxed in the bytecode which changes the observable type to external tools that would otherwise set the value or it would require additional infrastructure be added to the class to track whether it was initialized or not