onuploadcomplete present on the component and used in order to update some zone after files uploaded. You could check demosite example.
Different behavior for event, 'onuploadcomplete' has been observed.
If 'onuploadcomplete' is put within r:fileUpload as an attribute, it works as advertise, which is called after all files from the list are uploaded. If the file has exceeded the file size restriction, the event is not fired. Whereas, if 'onuploadcomplete' is incorporate within a4j:support (similar to the example in the demo site), the event is fire even the file size limit is exceeded.
I checked your case on 3.3.0.GA. All works fine.
'FileUploadListener' fires after all files processed. Also in case of size limit exceeded.