Leveling tries to schedule tasks as close to the relevant end of the project as possible, given the various constraints, dependencies, resources, priorities, etc. If a task is marked as completed, it isn't blocking something else from being started, and if a task has nothing blocking it, it will be shoved up against the end of the project. I can see how one might make an argument that the presence of a completed task in a given time slot should signal the leveling code that another task couldn't be done by the same resource in that same time slot (assuming 100% effort), but that's not how it works now, and the option to not schedule tasks before a given date (tomorrow morning being the default offered) seems to handle this pretty well, IMO. Your Gantt chart shouldn't show future work as already completed — if the work was done earlier than expected, the Actual view ought to be updated to reflect that.
I think the long and short of it is that if you are building a plan and haven't actually started working it, you probably don't need to turn on the "don't schedule tasks before date" option in the level command, and if you are modifying a plan already in progress, you use that option, probably with tomorrow morning as the date. Is there something I'm missing with this argument?