I don't know if there is a way to check the reason why a file does not upload. The size limit can be enforced in a number of ways. If you limit the size with the Apache configuration limit, then php never knows about the file. If you limited the size in the php.ini configuration, I am not sure if you can determine that someone tried to upload a bigger file.
In my pages, I limit the size in my script just by checking the $file_size variable and returning an error if it is more than I want (note the $file_size is actually the name of the form field with "_file" appended).
As for PDF "average" size; that of course depends on your settings when you create the pdf, how many and what types of images, etc. You will need to determine yourself what is "average" for your application.
HTH
-- Rich Rijnders
-- Irvine, CA US