In a Full Adder what's wrong with [c.(a+b) + a.b] as the expression of the Carry-Out? I checked it with truth table and gives correct output. But in all books the expression is [c.(a XOR b) + a.b].
You can write \$(A + B)\$ as \$A\cdot B + A \oplus B\$.
\$C \cdot(A+B) + A\cdot B = C \cdot (A\oplus B) + C \cdot A \cdot B + A\cdot B =\\ = C \cdot (A\oplus B) + (1+C) \cdot A \cdot B = C \cdot (A\oplus B) + A \cdot B \$
The latter formula is the one you intuitively get, when you calculate the carry: you have a carry out if at least two inputs are 1.
The books use the latter formula because you don't need to calculate again \$A \oplus B\$, because you can reuse the sum term \$S=A\oplus B\$ (i.e. you save one logic gate).