That made me curious and I looked it up:
https://stackoverflow.com/questions/54733581/which-operators-in-c-have-wrong-precedence
The bit operators in C indeed have a non-optimal operator precedence.
I'm also more in favor of breaking changes in programming languages. C++ has tools that do code modernization like the modernization module of clang-tidy: https://clang.llvm.org/extra/clang-tidy/index.html
I like how in C++ standards they first deprecated a feature in a standard version and then remove it in the next version of the standard. This gives compilers the change to show warnings for the deprecated feature and the users time to fix their code.