allow the *foo{IO} slot to be removed from GV
No, it doesn't. You can't break every XS module that interacts with Perl file handles.
If XS modules depend on the *foo{IO} slot today, then how do they work with current indirect filehandles? Or are indirect filehandles actually glob references, even though they print as =IO?
It would cause the following to fail
You are correct; however, the simple case I was considering was more like:
open INPUT, '<', $file or die ...;
while (<INPUT>) {
...
}
close INPUT;
You said the goal was to avoid barewords.
If I said that then I was mistaken; the goal was to provide an alternative to the removal of features suggested in the original Perl 7 announcement that I found objectionable. The improvements to I/O handling envisioned are simplifications by making all filehandles indirect filehandles, while retaining at least some of the existing syntax.