Doesn't gcc render the same? I swear I've seen this same pattern with a multitude of compilers and it's (slightly) expected. I'd definitely label this as an enhancement though as we've already taken a strong stance on how switch works (prior to Go; I guess).
@Headline C and C++ do not warn about this, both compile as assuming the default will be the return value. It's pointless to have an ending return expression if the default case label also contains a return expression.