Currently when the CopyTask encounters symlink to a file, it copies it as if it was an ordinary file (thus creating two files in the destination directory where there were only one file + one symbolic link to it in the source directory).
The attached patch (against svn HEAD) adds support for copying symlinks as is (thus they will remain symlinks in the destination directory).
Notes:
1) I did not test it on Windows (though it should degrade gracefully)
2) It fails on symbolic links to directories (they become copies in the destination directory).
3) It is somewhat dirty as it passes the $resolveSymlinks flag from CopyTask to FileUtils to File to FileSystem - I couldn't find more elegant approach
4) I filed it under phing-core category because the main changes were in the core, not in the CopyTask itself.