The usage of both "edit" and "upload" permission first appeared in cb4cef1d1032a7d4c9f9e244798e4ce19aa44f67 ("edit" was added first). However, Special:Upload does not check whether the user is allowed to "edit" or not. Besides, uploading to an existing file does not change the file description page wikitext, so checking for "edit" permission is not necessary.
Bug confirmed in beta:
Note: simply remove the check from UploadBase->verifyTitlePermissions will break cascade upload protection, as cascade upload protection rely on the parent page being edit protected.