it helps some times In the current standard (ISO/IEC 9899:1999) there is a sequence point between function calls but the order of evaluation of the operands to + is not specified so func1 may be called before or after func2 but the function calls must not overlap or be interleaved in any way. This means that each of func1 and func2 can, if desired, interact with some shared data without having that data change under it in an unexpected way.
it fixes the issue This has always been guaranteed, and the sequenced before rules (or the sequence point rules in pre-C++11) aren't need to determine this. In C++, each (sub-)expression has two important effects in the generated code: it has a value (unless it is of type void), and it may have side effects. The sequenced before/sequence point rules affect when the side effects are guaranteed to have taken place; they have no effect on the value of the sub-expressions. In your case, for example, the value of (a += 1) is the value a will have after the assignment, regardless of when the actual assignment takes place. In C++11, the actual modification of a is guaranteed to take place before the modification of c; in pre C++11, there was no guarantee concerning the order. In this case, however, there is no way a conforming program could see this difference, so it doesn't matter. (It would matter in cases like c = (c += 1), which would be undefined behavior in pre-C++11.)
C++ Order of Evaluation of Subexpressions with Logical Operators
it fixes the issue The special sequencing behavior of &&, ||, and , is well-established in C and C++. The first sentence you quoted should say "The order of evaluation of subexpressions within an expression is generally unspecified" or "With a few specific exceptions, the order of evaluation of subexpressions within an expression is unspecified". You asked about C++, but this question in the C FAQ list is pertinent.
order of evaluation of subexpressions in a Java expression
Any of those help Side effects don't have to be deferred until the sequence point -- they may be applied immediately upon evaluation. Or not. C 2011 has some slightly different (more precise) language: