I've run into this problem a couple of times:
- I purchase a song on the iPhone via the iTunes Store app.
- I re-download the song on iTunes on my Mac.
- I add the song to an existing playlist in iTunes.
- I attempt to sync my iPhone with iTunes.
After step 4, I would expect that the updated playlist would be on the iPhone. Instead, I find that the purchased song has been removed from the iPhone and the playlist on the iPhone is now 1 song short of number of tracks that iTunes reports.
If I purchase a song on iTunes or on another iOS device, but do steps 2 - 4, the problem doesn't happen. It only happens when a song has been purchased on the device first.
Both the iPhone and iTunes are using the same Apple ID in this case. I was able to solve this problem in the past by doing a combination of restoring the device and also manually removing the songs/albums from the Music tab for the iPhone in iTunes. I've removed the songs this time, but no luck. I'd rather not have to restore the device completely every time I make a song purchase on my iPhone, so I'm looking for other possible solutions here.
EDIT:
I've also now found that if I re-download one of the missing songs onto my iPhone after syncing with iTunes, that it will show up in the playlists (which only iTunes knew about). Once I sync with iTunes again, the song will be removed from the device.
At this point, it's sounding more and more like a bug in either iOS or iTunes, so I'm going to go off and file a bug report with Apple.