We use multiple dependent builds that are connected by Artifacts and Snapshot dependencies. Teamcity is smart in that it doesn't build a dependency if no files are changed for that dependency. But then it copies the artifacts to the build that needs them and changes the artifact timestamps to the copy time.
This causes the second project that needs those artifacts to treat them as newer than the current build and this causes a rebuild for all projects that depend on these artifacts, even though they haven't changed. While this isn't a problem for full clean builds, it is a problem for incremental builds.
To me this feels like a bug, unchanged artifacts do not need to get a new timestamp when re-used again in another build. We are currently working around this issue by using the ability to pack the artifacts in a zip file. The zip file itself gets a new timestamp but the timestamps of the files inside it are preserved.
Is this a bug that I should report or is there a good reason for this behavior?