Well, I agree, this is not the best place for this check. I mean it just for evaluation purposes (it's just a log warning, program flow is not affected).

I think we need a UploadManager. Interface: upload(file, isInstant). So, similar to FileUploader. However, it should take care of all the nasty stuff like retrying in case of being offline, checking whether instant upload is to be uploaded only if wifi is on, broadcast completion events, show a list of ongoing uploads, etc.
Any part of oC which needs to upload a file just calls upload and can be sure that it is uploaded eventually.

BTW, about whether to use the current upload permission or to use the permission that was valid when taking a photo... I don't know. I tend to prefer to use current permissions.