Background
If an IP is locally exempted from a global block, a row is added to the global_block_whitelist table that references the ID of the block in the globalblocks table.
If the block is removed manually before the expiration date, the global_block_whitelist is not removed. Instead it may be removed if the expiry date is reached (via GlobalBlockingBlockPurger::purgeExpiredBlocks). However, the expiry may be infinite or far in the future.
Before https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GlobalBlocking/+/1012667 the row would also be removed when exempting the same IP from another block; however, this is no longer the case. (And shouldn't be relied on since the IP may never be re-expemtped.)
This hasn't been a problem so far (perhaps for reasons suggested in T360516#9645897) but may become more of a problem when global blocks for accounts are enabled.
What to do
Orphaned rows in global_block_whitelist should be removed periodically.
(The maintenance script fixGlobalBlockWhitelist.php script already exists for this, but it doesn't seem to be run periodically.)