Looking at the overall approach for this property it can be simplified quite a bit. The basic issue is that it is initialized early in VM startup (so it can be present for crash logs) before argument parsing, but some details can change due to argument parsing. If we update the native value after argument parsing, and so before the properties are passed through to the Java side, then we don't need to execute the Java code in reset_vm_info() to perform that update. Additionally, if we expose the SystemProperty directly (as done for other properties) then we can do away with the new PropertyList_update_value() function that has to search for the property to be updated.
Overall this cuts out a chunk of initialization code that may aid with startup costs; and simplifies the code.