Now, API modules for recent change use tag_summary but the special page itself uses change_tag table. This means API and GUI are reading from different backend.
Also with T185355: Normalize change tag schema, change_tag is getting nimble and more suitable to be used as it's get automatically pulled into the memory.
It seems the reason for having it in the first place was (from tables.sql):
-- Rollup table to pull a LIST of tags simply without ugly GROUP_CONCAT -- that only works on MySQL 4.1+
- [ChangeTags::modifyDisplayQuery()](https://gerrit.wikimedia.org/r/473611)
- [ApiQueryLogEvents](https://gerrit.wikimedia.org/r/473617)
- API modules
- [WatchedItemQueryService](https://gerrit.wikimedia.org/r/476059)
- Special:Undelete, Diff
- AbuseFilter
- FlaggedRevs
- stop updating the table
- [remove from tablesUsed](https://gerrit.wikimedia.org/r/477611)
- drop tables