What you were doing was probably fine, but I got a little sidetracked since you were trying to redefine an action that already existed. (This is my usual “Heed my advice, young’ins!” speech to new Inform authors.)
INSTEAD is a different type of rulebook in that it bypasses all normal parsing and only does only exactly what you write in the rule. It’s handy if you just want to redirect or forbid certain actions, (
Instead of taking off the coat: say "It's too cold." is a perfectly legitimate use of it) but when you start writing more complicated actions of your own in a bigger game, things will go wrong and you’ll end up packing conditions into the rule that are better handled in the normal parsing process using BEFORE, CHECK, CARRY OUT, AFTER and REPORT.
Consider a rule that says
"Instead of examining the large book: say "You decipher pages and pages of text."
Simple enough, but you just printed a message that doesn’t take into account any of the current state of the game world. What if the book and the player are in a dark room? What if the book is inside of a glass box where the player could not logically turn the pages as you described? What if the book is being carried by the evil wizard? What if the player is trying to read the book underwater? You could write more logic into the Instead rule, but at that point, you’re not letting the parser do what it’s supposed to do.
Also, if you wrap action processes into exclusive INSTEAD rules, those conditions don’t have a chance to be considered by other actions, and you’ll end up doing more work than you have to. It might seem more daunting to learn rulebook structure instead of using the big hammer of Instead, but when you start modeling systems that work together, you’ll have a lot easier time putting logic into the correct rulebooks.