Casting: Yeah, it would be nice to make them more searchable, though C++ syntax makes them overly verbose. But honestly, in tracking down a crash, more often than not you'd do far better to find out what variable(s) are suspect with a debugger, and search for those variables, rather than casts in general -- especially in any decently sized project. Besides, GCC usually prints warnings about any suspect casts if you haven't told it not to.
Also I have seen more problems from messing up pointers than from messing up casts.
Switch: I'll give you this one 100%. You almost always want the "break" behavior, so make it the default and have a "fallthrough" keyword.
Optional braces: I like optional braces. They simplify 'trivial' uses of if, like "if(x<0) x=0". A syntax that allows you to make poorly formatted unreadable code is not bad. This is not kindergarten, we don't need round-tipped scissors.