I attribute a degree of blame to Airbus because the pilots (neither particularly good, clearly) were unable to accept they were in a stall because it's an Airbus, and it won't let you stall. Except when it does.
And yes, it was pilot error. Like most pilot errors, there are contributing factors.
Usually I'm with you on there being multiple critical factors to blame, I just don't really think that was the case in this accident to the degree it usually is. They identified the unreliable airspeed early on, and understood it later in the sequence, yet never completed the associated procedure nor were their control responses appropriate for that condition. They didn't discuss the stall alarms at all, which is pretty strange, but doesn't lead to the conclusion that they thought they could ignore the continuous stall alarm because they were in normal law; they also called out the shift to alternate law, though I agree it could have easily been missed. There's no excuse for not executing the stall recovery procedure (or even earlier, the unreliable airspeed procedure - some of the items were performed but it was not done in the expected challenge/response systematic manner, nor completed), nor for the PNF to continually provide control inputs after giving the controls to the Captain - or this was a CRM failure where they had conflicting interpretations of who was in control, but regardless it is a piloting issue.
Confusion in complex failures is a relatively common cause of accidents, and I'm usually the first to defend the pilots in a situation with conflicting alarms and information, but in this case the only alarm they were getting initially was STALL STALL, and their conditioned response to that should be to execute a stall recovery or if they were actually looking at their PFD, maybe unusual attitude recovery could be justified. And the only unreliable indication they were receiving was airspeed, which recovered shortly after the incident began. It appears they just completely ignored the attitude indicator they should have known they could trust, as well as the repeated stall warnings. Suspecting unreliable airspeed seems to have led them to mistrust the airplane entirely and ignore everything else it was telling them, and that's not defensible, especially in hard IMC.
The only places where the aircraft could arguably have done a better job IMO would be not suppressing the stall alarm below 60KIAS, and kicking the flight directors completely off when the data was invalid, rather than restoring them as the data came back, but by the time the incident evolved that far, they should have already executed the stall recovery procedure. Even after it did get that far, getting out of stall and back to a normal attitude should be overriding anything else in their minds. Regardless of anything else, including airspeed which was suspect, it would have been obvious they were at an extreme nose up attitude that would lead to stall. You could argue the pilots should have visibility of AoA data, but this isn't unique to Airbus, and they certainly didn't need it to tell them they were stalling the plane, the plane did that all on its own, as would have their attitude indicator.
The BEA didn't request any changes to the airplane as a result of the accident, and I think that's pretty clear indication they don't think any part of it was causal here. It's just bad pilot decision making from the Captain's laissez faire attitude about the weather, to not executing the unreliable airspeed procedure, to ignoring the stall warnings, to applying inappropriate control inputs, to
continuing to apply those inputs after the Captain ostensibly took control.
Anyway, apologies for dragging this off topic, just get tired of people bringing up AF447 as if it's clearly the fault of Airbus; even with the most generous interpretation, the airplane plays a minor part in this accident.