On the other hand, if you accept that counter-factuals can't matter, this leads to massive problems. Most importantly, it means the C. of a system has to be determined by just a small segment of some calculation. Like, if register A holds bit string 10011010 and register B shows holds string 11110000, and then some operation is performed and A changes to 11110110 whereas B changes to 11000000, this can mean absolutely anything, in fact I just pulled all of these out of my hat. But you can write a program such that these strings represent arbitrary values! In fact, given any calculation that actually does something practical, you can always change the rules and get an equivalent calculation that does the same thing but uses different bit strings. The easiest way is just to exchange the role of 0s and 1s. In this forum post, some translator somewhere will just use a fixed table to translate each symbol into a sequence of bits, probably UTF-8 encoding.
So Computation only makes sense in the context of what the inputs and outputs mean. Or could many more steps be enough to somehow constrain it? Here it gets complicated.
Anyway, I see why IIT wants to care about counter-factuals; it makes it much easier to get a formalism that doesn't look blatantly absurd.