Attempts to fix #35853. This issue is about side-effectful function calls, but since almost every function call potentially causes side effects and would therefore prevent any misc-redundant-expression warnings, I have focused on assignments instead, which would also fix the example in #35853.
We already have special treatment of unary increment/decrement here, even though this can also lead to false negatives. Replacing i++ with i = i + 1 currently changes the behavior of the misc-redundant-expression check, whereas the change proposed here prevents any warnings about redundant expressions if assignments are involved. This can cause false negatives, though (whereas the current implementation causes false positives), so let me know whether you think this is a sensible change to make.