Since in both cases we need to use a segment, is there a functional difference between using a rollout with X% = true, vs using a multivariant flag returning X% = true, assuming the consumer handles both string and bool versions of “true” the same way?
No not really any difference if you use either boolean or variant flags in that way.
You don’t actually need to use a segment for boolean flags if you don’t want however, since a threshold rule is not based on a segment and is a ‘global’ % based on the entityID