It seems like properly enabling lexical binding in ediff will be a bit tricky.
If you look at the code of ediff-find-file, you will see the use of `symbol-value' everywhere.
This line is the source of the error in the bug report:
(defun ediff-find-file (file-var buffer-name &optional last-dir hooks-var)
"Visit FILE and arrange its buffer to Ediff's liking.
...
deleted."
(let* ((file (symbol-value file-var)) ;<------------------
I see symbol-value used at 4 places in ediff.el. So all of those will need replaced with variable access in lexical scope.