Forgot double buffering... Nothing to see here...
I most it doesn't matter much, however if you think about that most/a lot of time is usually spent on the logic part for one frame, calling clear at the beginning will leave the screen empty for the whole logic calculation.
For example (wild guesses) (at 60fps = 16.6ms/frame):
Black - 00ms - clear()
Black - 01ms - input handling
Black - 04ms - physic simulation
Black - 08ms - AI calculations
Black - 12ms - draw()
Black - 15ms - display()
Image - 16ms - end of loop
As you see, you'll end up with only a very short time where the window is actually displaying an image. Since our eyes can't really notice the difference between one quick frame flash per 16ms or a full image over 16ms it's not an issue, however even though we can't really notice the difference it's still possible that our brain/subconscious "sees" one, especially for action packed games.
In essence nobody would probably write:
logic()
draw()
display()
clear()