Secara efektif final vs final - Perilaku berbeda

Sejauh ini saya berpikir bahwa secara efektif final dan final kurang lebih setara dan bahwa JLS akan memperlakukan mereka serupa jika tidak identik dalam perilaku sebenarnya. Kemudian saya menemukan skenario yang dibuat-buat ini: final int a = 97; System.out.println(true ? a : 'c'); // outputs...