The question: is the following description of the behavior of these fragments correct?
or_i fragment and
d: wrappers all have an
IF in their script that does not take the value from the argument(s), but from some external source. This external source cannot be the result of another miniscript fragment, because the fragments are composed as nested expression, not as a sequence of actions. This means that an input to
d: have to come from the witness that is specified at the spending time (that should be 1 or 0 due to
j: wrapper from the question and the description because it does not take the value from external source, it just checks for the size of the data that X consumes