Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
You have confused a constant with a final. A final is not always a constant, but a constant is always final. Your issue is related to constants, not finals. This is why you observe some finals, that are not constants, behaving differently to other finals, that are constants.
The links above are your point of call (JLS 15.28 and JLS 16). Here is some fun: http://jqa.tmorris.net/trivia/GetQAndA.action?qids=13