The rules are clear. only country domains can be 2 letters, to match the 2 letter country codes they are based on. if we allowed other 2 letter domains, a collision could easily occur. for example, if Scotland became in independent country, we already have an issue as the obvious 2 letter domains (.sc or .al) are both taken already (sechelles and albania) so something like .sq would likely be used. but we only have even that less than ideal option because people can't otherwise use .sq .
No one associates .io with that "country" it belongs to. And the only problem that could arise would be, if a real country emerges that would be given the IO country code. Which is unlikely, because it was already historically used. Codes like SU will not be reused either. Or BU, DD, YU.
This domain stuff is not international law or something. The tld .eu is not a country either and it exists and there are iso codes that have no tld, so much for clear rules. If they wanted, they could have 1 letter tlds.
Anyway, there is no need to reserve the 2 letter code io, as it will not be reused. For 2 letter codes that are not in use, this is different, as they are reserved for emerging countries like Scotland might be.
In my opinion the only thing they could argue about, who has authority to give new .io domains in the future. But converting the .io from country to general should not be a problem.
At the time those other tld were removed the internet was a bit smaller and those country codes were much more locally used. This time it is high profile hosts that are not local usage. So for hosts and users, they better find a solution.