In the cases you point out there are rationale behind it and I think you can find it in the epic thread, e.g. why no with or colon after extension? because it’s not a template body where you can have fields etc, see e.g. around here in the epic thread: Feedback sought: Optional Braces - #391 by odersky
Also there are reasons for having with
after given values that fill in abstract members - I think it’s in the epic thread but could not find it right now. If I remember correctly it is because there would be too many colons hurting your eyes…
You can also find some of the rationale for the variation in how blocks can be opened here: Optional Braces