>>234
やはり自分の設定ファイルが原因っぽいので,
hack-local-variables を Edebug してみた.
すると local-enable-local-variables が nil なので
ローカル変数が束縛されない様子.

自分が導入してる elisp から local-enable-local-variables を
検索したら judge-indent.el ってのが local-enable-local-variables を
nil に束縛しているようだった.
コメントアウトしたら正常にローカル変数を読み取ってくれました.
アドバイスありがとう!

ところでファイルを開くたびに一々 yn! を聞いてほしくない場合は,
safe-local-variable-values に (変数 . 値) のコンスセルを追加すれば
いいと思う.これを「ある変数については,どの値でも安全ですよ」みたいに
設定することはできないもんなんですかね.理想的には「eval の入っていない
値ならどれでも安全ですよ」になるといいんだけど.

まったく危険性を無視すれば
(setq enable-local-variables :all)
でいいけど,推奨されてないっぽいし.