Пришел к двум вариантам:
* Обойтись без CRequiredValidator - переключать СFileValidator::allowEmpty в false, при нужных нам сценариях, например только при вставке (insert). Тогда можно будет убрать beforeValidate, но при построении формы поле файла не будет указанно как обязательное (звездочки красной не будет, но валидация будет работать верно)
* Использовать CRequiredValidator, все замечательно, но приходится в beforeValidate() присваивать атрибуту объект CUploadedFile, иначе валидация не проходит