(setq data '(global))

(let ((data '(lexical))
      (sexp '(cons "HOGE" data)))
  (eval sexp))

;=> ("HOGE" GLOBAL)

なぜevalではletで定義した局所変数ではなく
setqで定義したグローバル変数が使われるのでしょうか?