You define two architectures for one entity. During simulation (or synthesis), only one will actually be used.
Quartus will use the last one it encounters if none is selected (hierarchy, configuration).
If you want both the statements to be executed (sim), or synthesized, put them in one architecture;
ARCHITECTURE func OF CRA1BIT IS
BEGIN
s0 <= (c0 XOR x0 XOR y0);
c1 <= ((x0 AND y0) OR (c0 AND (x0 OR y0)));
END func;
The use of multiple architecture is very handy if you want to describe behavior on different levels, such as RTL or logic.
You can test both and see if they behave the same.