Is this Normal SSIS Foreach Loop Container behavior
Based on clarification from the comments, the work flow was 

C:\SourceFolder\File1.csv -&gt; C:\SourceFolder\Archive\File1.csv


The ForEach File Enumerator has a Traverse Subfolder option which allows the enumerator to look beyond the top level of a folder hierarchy. 



The specific mechanics of how the enumerator appears to be implemented is that it will identify all the elements within a folder. Process all files matching the FileSpec, *.csv is this case and then visit each directory applying the same pattern. 

What you're observing was the original file was processed and correctly moved to the archive location. The archive location was then processed resulting in a double processed file.