The account link invalidation system is wonderfully lazy/just-in-time and efficient, given the use of resources rather than a central ledger or account-level ledger resource.
Making account links resources that can be transferred means that there is no guarantee that the account that holds the link resource has been approved as the controller of the Ethereum address by the oracle. This makes transfer easy, which has both good and bad consequences.
Following on from this, more than one Flow account can register over time as the controller of the same Ethereum account without the others being automatically invalidated. This also has both good and bad consequences.
The previous two considerations are rendered largely unproblematic by the fact of the account link invalidation system. As soon as a user knows they wish to revoke access via a given link, they can do so.
Review the Cadence part of the oracle code for security, best practice, and style.