I suppose it could happen this way (not for all of these problematic results):
- Developer releases game on Steam, say with app ID 12340
- (Barter scrapes game page)
- Developer releases DLC for it, say with app ID 12341
- Developer later decides to integrate DLC into his main game for free, re-releases with 12350
- Store page gets updated to point to /app/12350/
- (Barter keeps scraping 12340, doesn't realize it's being redirected or something..?)
I'd need to check if the wrong app IDs are stored in the database.
I could add some sort of 'Nope, still have it' button to remove the removed status (sic), and log all of these changes with the intention of later deleting or updating game entries that constantly show up as wrongfully removed.
Hmm, yeah I doubt I'd even do that manually... :-/
I thought the removed flag was a good idea. I don't really want to remove it.
Re: Dungeon Siege III, it's an interesting situation. I traded for it recently, and noticed that the App ID was redirected from 39160 to 901638 automatically (look at the 'Store page' link on the SteamDB page you linked to, it does that too), so I edited the database manually to update the app ID. I don't even know why I did that, it's the only time I ever did, but I figured the devs had re-released their game with some added DLCs (or removed!) in time for bundling in that dreadful Square Enix Spring bundle.
Now, it's a possibility that users who redeemed the game outside of that bundle version still get 39160 in the API's owned game list. Which would explain why LT doesn't find it.
I'm gonna assume this kind of situation doesn't happen every day and it would be possible to manually build a list of outdated app IDs that should be transferred automatically. But it's probably more work than needed... Meh, I probably really should remove that feature. :(
Oh, maybe something much simpler: add a 'look for removed games' button, which would sync your list and use the opportunity to give you a list of removed games, and allow you to remove them, just like the wishlist now shows you problematic games. I wouldn't need a flag for those, but I'd need to store the problematic game list elsewhere in the database, at least to ensure the current list can't be abused to remove more games. (Okay, I know what you're going to say, "if I go to great lengths to try & remove a regular game from my library on LT, then maybe it's for a good reason and who cares anyway.")