Tracking watch status of TV Series

As far as I can understand tracking watch status of episodes in a TV series works like that:
Server uses an ID to identify a series and assign episodes to it. If TVDB or IMDB id are set those are used. If none of these is set then some internal ID is used. So: TVDB > IMDB > Internal. No other provider is ever used.
There is one problem with this approach: you can not set the same TVDB id to 2 different series. If you do that the server will synchronize watch status between those two. If you watch EP1 in “Series A” then EP1 in “Series B” will also be set as watched.
This is a huge impact to anime collections due to how different seasons are handled. Let’s say someone uses AniDB (from Anime plugin) as a primary metadata source and TVDB as secondary one (to be able to download images from TVDB and Fanart.tv as Fanart.tv uses TVDB id’s). A series like ‘Code Geass’ has 2 seasons, AniDB has two different entries for each of those (treats them as different series), but TVDB only one (1 series with 2 seasons). Now you can only set TVDB id to one of those series because otherwise server will mess with your watch progress.

I can see two ways of fixing this:

  1. Ignore TVDB and IMDB and only use internal ID to track watch status.
  2. Use other providers IDs to track watch status. Probably the best way would be to prioritize them by the order in library settings.

I don’t know what the impact of such changes would or how hard it would be to implement this, but it would be a great improvement as this would allow us to use other providers along with TVDB.

PS. This did not seem specific enough to be posted in “Feature requests” so I though it would be better to post it here instead.