IO is just state and can be represented on the tape. You can construct a machine for every conceivable input at every time during the execution and reason about them.
You can, theoretically, keep constructing machines for every input you need. Yes you are bounded, but you can say "this machine will halt for every input it can receive in the next 100 years", because you need to quantify the input in blocks of time.