There's no excuse for secretly averaging widely divergent inputs, especially in alternate law (which the plane wouldn't be in unless something is going wrong). It should have picked one and indicated to the other pilot that his/her input was being ignored. IIRC this isn't an issue on the Boeing design, only Airbus.
One the contributing factors was that the stall warning cut out when the nose was pointed higher up, giving the copilot the impression his attempt to full nose up was the right decision. When the nose lowered the stall warning kicked back in. IIRC this was because the computer saw the full nose up as an "impossible" condition and decided not to issue the stall warning. As the nose lowered certain values came back in-range so it issued the warning.
Without these two wildly incorrect behaviors the plane probably wouldn't have crashed.