Since iTunes 9.1.1, however, I've noticed that there's been an extremely lengthy sync operation every single time I've synced my iPhone, with hundreds of songs that were already on my iPhone being re-encoded again for no apparent reason. Fortunately I haven't been the only one with this bug, and the folks at Mac OS X Hints found a solution to iTunes 9.1.1's syncing bug.
If you've been experiencing this issue, it's likely you're running an earlier build of iTunes 9.1.1. Go into iTunes -> About iTunes, and the window that pops up should give you the build number. If it says "iTunes 9.1.1 (11)" you have the build with the syncing bug. According to Mac OS X Hints, this syncing issue arose because iTunes 9.1.1 (11) changes the Modification Date on a song every time you play it.
The solution is simple: go to Apple's iTunes page and re-download iTunes. Once installed, the build number should be iTunes 9.1.1 (12), and the syncing bug should go away. This new build isn't being pushed out to people who downloaded iTunes 9.1.1 (11), so it won't show up in Software Update; you'll have to go get it manually. If you haven't enabled the option to convert higher bitrate songs to 128 kbps AAC on your iPod or iPhone, you have no reason to download iTunes again, and you can carry on as normal. This solution is only for those who have enabled this option and run into the syncing bug described above.
For me, the first sync after installing iTunes 9.1.1 (12) still re-encoded 600+ songs, but that was likely because I'd interrupted the process during the last sync. Subsequent syncs haven't needed to encode those songs all over again, so in my case, the problem seems to be fixed. As always, your mileage may vary.