las variables finales no funcionan bien en jshell

Estoy trabajando con jshell de JDK9.

Acabo de crear una variable final y le asigné un valor. Y en la siguiente línea acabo de modificar el valor. Y para mi sorpresa, no hubo error al modificar las variables finales.

Aquí están los fragmentos de código:

jshell> final int r = 0;
|  Warning:
|  Modifier 'final'  not permitted in top-level declarations, ignored
|  final int r = 0;
|  ^---^
r ==> 0

jshell> r = 1;
r ==> 1

jshell> System.out.println("r = "+r)
r = 1

¿Es lo que se espera de jshell? o hay alguna otra forma de trabajar con variables finales en jshell?

Respuestas a la pregunta(1)

Su respuesta a la pregunta