CUploadedFile::getInstance() method docs says that "…Null is returned if no file is uploaded for the specified model attribute", but if it was no file selected it returns not null, but CuploadedFile object with empty properties and error status = 4. Dont even know is it a bug / feature / documentation inaccuracy or my misunderstanding.
if we have model tabular file inputs and not tabular at the same time CUploadedFile::getInstance() crashes with php error.
In this case $_FILES array looks like this:
[ProductImage] => Array ( [name] => Array (  => Array ( [imageFile] => image1.jpg )  => Array ( [imageFile] => image2.jpg ) [someFile] => somefile.txt ) ...