If you look at the revision history of io.c, revision 4673, I commented:
Bug fixes. We should not be returning NULL for io PMCs, that generates
an exception now.. A PMC should be returned with a NULL ParrotIO * for
valid eof/bool tests.
As this was 2003, I honestly don't remember all of the discussion.
There might be a record of it between Dan and me in the
archives, however, chances are it was on IRC.