Эффективно final vs final - другое поведение

До сих пор я думал, что фактически final и final более или менее эквивалентны и что JLS будет рассматривать их одинаково, если не идентично в реальном поведении. Затем я нашел этот надуманный сценарий: final int a = 97; System.out.println(true ? a : 'c'); // outputs a // versus int a = 97;...