Earlier quoted context omitted.
> The problem with the C-style of assignments is that it leads to this classic error: if(x = 0) {...} yeah, if you code on 20 years old compilers with no warnings. GCC 4.1 warns about this (with -Wall) and Clang 3.4 warns about this too, without any warning flag.
Not having a problem in the first place is preferable to fighting it with tools. == vs = is a classic mistake that I'm sure every C programmer has wasted some time on. (I'm just undecided if I prefer dealing with this very problem occasionally, or choosing either of the verbosity of := assignments or the non-orthogonality of = assignment statements plus := assignment expressions.)
You can require additional brackets around assignment if you use the returning value (or otherwise it's syntax error). They did that with the new one anyway.