Of course
cond = false if cond; then x; else (if cond; then echo msg); fi
cond = true if cond; then (if cond; then echo msg); else x; fi
Of course
does not do the same thing as Bash is not somehow strange in this regard.