By allowing an evaluation function to be passed to load, it becomes possible to use it for languages other than Scheme expressed in S-expression syntax. The function would receive an S-expression read from the file and the environment passed to load.
Possibilities:
env-only: status quo, default environment is (interaction-environment)
eval-only: eliminate the environment argument in favor of a evaluator argument, a one-argument procedure (by default, (lambda (x) (eval x (interaction-environment))
env-first: environment argument followed by evaluator argument, same defaults
eval-first: evaluator argument followed by environment argument, same defaults
This seems too random. There is no clear motivation or examples, the status quo is widely implemented and sufficient for alternate languages by specifying the env, and yet both solutions are insufficient for languages with a different read syntax.
It's too late in the process to consider a change like this without any precedent.