Is there some really good reason for this? Among the consequences is that the files in "reflect" are built against whatever package object classfiles already exist, and then subsequently in the same build, the files in "compiler" are built against the current source of the package object. If we were running out of confusing things to debug, it is a surefire way to alleviate our boredom.
% ls -l src/compiler/scala/tools/nsc/io
total 152
-rw-r--r-- 1 paulp admin 428 Aug 18 07:32 DaemonThreadFactory.scala
-rw-r--r-- 1 paulp admin 1119 Aug 18 07:32 Fileish.scala
-rw-r--r-- 1 paulp admin 6071 Aug 18 07:32 Jar.scala
-rw-r--r-- 1 paulp admin 9242 Dec 6 2011 Lexer.scala
-rw-r--r-- 1 paulp admin 480 Aug 18 07:32 MsilFile.scala
-rw-r--r-- 1 paulp admin 18586 Aug 18 07:32 Pickler.scala
-rw-r--r-- 1 paulp admin 1021 Jul 27 11:11 PrettyWriter.scala
-rw-r--r-- 1 paulp admin 1899 Aug 11 23:26 Replayer.scala
-rw-r--r-- 1 paulp admin 2535 Aug 18 07:32 Socket.scala
-rw-r--r-- 1 paulp admin 4813 Aug 18 07:32 SourceReader.scala
-rw-r--r-- 1 paulp admin 1503 Aug 18 07:32 package.scala
% ls -l src/reflect/scala/tools/nsc/io
total 136
-rw-r--r-- 1 paulp admin 8995 Aug 18 07:32 AbstractFile.scala
-rw-r--r-- 1 paulp admin 2931 Aug 18 07:32 Directory.scala
-rw-r--r-- 1 paulp admin 7573 Aug 18 07:32 File.scala
-rw-r--r-- 1 paulp admin 640 Aug 18 07:32 FileOperationException.scala
-rw-r--r-- 1 paulp admin 902 Aug 18 07:32 NoAbstractFile.scala
-rw-r--r-- 1 paulp admin 10611 Sep 1 07:17 Path.scala
-rw-r--r-- 1 paulp admin 3261 Aug 18 07:32 PlainFile.scala
-rw-r--r-- 1 paulp admin 4029 Aug 18 07:32 Streamable.scala
-rw-r--r-- 1 paulp admin 1911 Aug 18 07:32 VirtualDirectory.scala
-rw-r--r-- 1 paulp admin 2898 Aug 18 07:32 VirtualFile.scala
-rw-r--r-- 1 paulp admin 7584 Sep 1 07:17 ZipArchive.scala