JDK-8290196 significantly clarifies the conditions and timing of exit for a Java program (JLS 12.8). The goal there is to describe the experience of threads in the program -- which, significantly, includes the execution of shutdown hooks -- and *not* the actions of the JVM or the launcher that creates/terminates the JVM. By contrast, 5.7 should focus on the experience of the JVM. The API spec for Runtime.exit leads one to think that the JVM is mandated to start shutdown hooks, so 5.7 should reflect that. And, if the API spec develops tighter language around the JVM's "shutdown sequence", 5.7 should defer to it.