It took ages for me to find out why my field formatter didn't work!!!

in function file_build_content($file, $view_mode = 'full', $langcode = NULL)

if (isset($file->content['file']['#theme']) && $file->content['file']['#theme'] != 'file_link') {
unset($file->content['file']['#file']);
}

Why should we unset #file ?!?!?!?!