Integer promotion seems to be the source of many signed integer overflow UB. Why does C have it? Does integer promotion ever have a good part?
Yes, it simplifies a lot of code that would otherwise be littered with casts.
"Explicit casts only" worked fine in Modula-2, which doesn't have as many scalar types.