C is not a perfect language. Those 'for' loops you mentioned are total garbage, some kind of hieroglyphics that isn't immediately obvious. Swift's loop syntax is much easier to understand IMO, and it can support filters to make it even easier to read ("for case let ... where ..." -- the 'if case let' syntax is a bit iffy, I'll grant that, but Swift is open and you're welcome to suggest improvements).
Other things, like unary operators, you yourself agree that they're bad while also criticising Swift for not wanting to keep this C cruft around?
I think your expectations of Swift are wrong. They want it to be as universal as C, they want it to be as fast if not faster than C, but Swift is not C. They will not copy C's syntax, and if there are decades-old C conventions which today are considered unsafe/poor practice, they will not apologise for not implementing them.
When creating a new language, you want it to be reasonably familiar so people have an easier time learning it, but it's a very minor consideration. Having a clear and consistent identity for the language is more important, and if you get those right your language will be intuitive without needing to cobble it together from bits of other languages' corpses.
Things like the for syntax are good examples. Swift is just plain better than C here, IMO:
Swift:
for index in 0...5 {
// index will be 0,1,2,3,4,5
}
C:
for(int index=0; index<=5; index++) {
// huh?
}
Swift:
for index in 0...10 where index % 2 == 0 {
// index will be 0,2,4,6,8,10
}
C:
for(int index=startIndex; index<=10; index++) {
if( index % 2 != 0 ) {
continue;
}
// Yuck.
}