No, it seems that if
delimits actual blocks that are executed or not depending on the condition, while cond
parses the possible outcomes at the same time it evaluates the condition (that’s because that’s how Go templates work).
I stumbled upon the same issue a while back regarding optional shortcode params
This should probably be added to the cond documentation if you feel like it!