I’m afraid that’s just how it works. I don’t think any of the story formats remember state within the passage for you. But it’s not too hard to track: it’s just a little tedious. I think this does what you’re looking for.
|base>[The base passage text.]
|text1)[The first add-on.]
|text2)[(set: $passageA to true)The second add-on. [[Passage B]].]
{
(if: $passageA is true)[
(show: ?text1)
(show: ?text2)
](else:)[
(click: ?base)[(show: ?text1)]
(click: ?text1)[(show: ?text2)]
]
}