This thread is, I think, a good touchpoint regarding this issue. Dave focused the thread on if/else expressions, but switch gets raised a few times in there and the two are tied together on the Commonly Rejected Changes list. (I link this thread not to shut discussion down here, just to provide context for the previous extensive discussion of this issue.)
My personal opinion: I like using if/switch expressions in other languages that have them, and limiting them to single-expression bodies feels to me like at least a plausible fit for Swift. I'm on board with the sentiment that some expressed in that thread that it probably makes sense to treat if and switch as a package deal in this regard.
I also think that it would be great to explore how the landscape has changed since that thread with regards to alternatives to if/switch expressions. For instance, now that we have type inference for multi-expression closures, the following now compiles without error:
func f(_ b: Bool) -> Int {
let x = {
if b {
return 0
} else {
return 1
}
}()
return x
}
f(true) // 0
f(false) // 1