It seems that MzScheme’s one argument eval has backdoor access to the top level namespace.
(define a 43)
(let ((a 42)) (eval 'a)) ; => 43
(eval (list 'set! (string->symbol (string-append "ca" "r")) cdr))
car ; => #<primitive:cdr>
(car '(2 . 3)) ; => 3
Any one argument eval that I have imagined has some such excess authority. Moral: don't pass your eval to those that you don't trust and don’t apply it to code that you have not vetted. I recommend beginning programs with (define (eval e n) (eval e n)) thus sequestering the dangerous form of eval.

In the sample car was damaged by code that did not contain its name. The R5RS omits the one argument eval.