The behavior is different because cMax + 10 is a constant expression. According to the C# Language Reference,
A constant expression is an expression that can be fully evaluated at compile time. A constant can participate in a constant expression, as follows:
public const int c1 = 5;
public const int c2 = c1 + 100;
By default, an expression that contains only constant values causes a compiler error if the expression produces a value that is outside the range of the destination type. If the expression contains one or more non-constant values, the compiler does not detect the overflow.
Therefore, the compiler must evaluate your expression at compile time. Since it is unable to produce a valid value as the result of the computation, it produces a compile-time error. Use checked keyword to enable overflow checking for integers.