Final is an access modifier. It controls who can change a value (in this case, no one). And like other access modifiers, you can use reflection to remove or change those modifier. It is a security barrier the developer asks the system to uphold.
The Stable annotation is an optimization mechanism: a promise the developer makes to the compiler. It is on the developer to uphold.