It seems like we're special casing here. What if we just added the drops of a useful instruction to the worklist instead of adding them to the useful set immediately. Then drops in the worklist could be handled in the pattern match below.