They've been moving code into native binaries for some time. If they are intelligent they will continue to do this, including perhaps moving some game logic into dlls.
If I were designing the system I'd look at pushing the connection and communication code into the binaries. Then, you could probably have for example a hashcheck thread (running on the binary side) to watch the JVM's classloader for any changes to the client class files. And if it detects any then it fails to grant a connection.