Why don't they work? Google lock-in.
It's not Google that adds the code that makes your banking app fail: it's the goddamn bank itself.
But I agree with your point that the reason it sucks is not the AOSP-based system, and it's sad to blame the system when it's the app (or many times just Google) that is to blame.