実行時まで分からないならそれで(・∀・)イイ!!し
コンパイラが max が for の中では変更されないことが分かれば
最初の一回計算するだけで(・∀・)イイ!!わけで
maxの値がコンパイル時に分かればさらに定数で置き換えても(・∀・)イイ!!ってはなしで

じっさいどうしているかは知りません
まあ予想で言ってもしょうがない気がするけど