Special:Upload uses almost the same interface when uploading a new version over an existing file as it does when uploading a new file. From what I can tell currently only the licensing field is removed when reuploading.
While that's a start, more is needed:
The reupload form should have a distinct id to more easily distinguish between it and the new upload form.
There should be a separate upload-summary for reuploads (reupload-summary?) - the upload-summary system message is often used by projects for information specific to new uploads, sometimes quite a bit of information, and that tends to be less relevant when reuploading.
'Permitted file types' should either be removed or replaced with a note that reuploading only supports uploading a new version with the same filetype.
'Destination filename' should be removed - the destination is implicit in that it's a reupload.
'File changes' should be a single-line input like edit summaries and other inputs that wind up as log entries; along with the usual reasons (limited supported length, user inclination to hit enter at the end of a summary to submit, etc), having it as a full textarea also implies to the user that it is a description, when it in fact has no effect on the file description itself and only appears in the file history.
The edittools should not appear here if the charinsert extension is used - while this is an issue with said extension, changing the file changes field per above may resolve this part anyway.