Currently FileField is only invoking the FileField module to check for file references when validating the contents of a Filefield. So, if a file isn't already used in a FileField, you can't add it to a FileField. If it did module_invoke_all to check for any file references from any module, people would be able to use files they uploaded by other means. FileField already uses module_invoke_all() when checking for file references before deleting a file, so it would only delete files that were no longer referenced by anything else.
See #441280: Editing node causes Referencing to the file used in the field is not allowed for discussion related to this issue.