I see. View it less as monolithic power blocks and more like a series of alliances between cohorts. Split each party into 3 components: 'reasonable', 'corrupt', and 'wingnut'. The 'reasonable' Democrats didn't have the votes to get a reasonable ACA through, and so they either had to let the ongoing system stand or reach out to provide some type of alternative. The 'reasonable' Republicans were not available to pass any reasonable ACA. The wingnut Republicans weren't available (obviously) and so the reasonable Democrats had to compromise with corrupt Democrats to pass the current ACA. Corrupt Republicans were fine with it, obvs, since they were the same ones that allowed Bush's Medicare D travesty to pass.
The number of Republicans who knew that a public option was vastly preferable to the current bribe-fest would have greatly outnumbered the number of Democrats who insisted on the current bribe-fest. Reasonable outnumbered corrupt. But they were whipped by the Tea Party component of the base.
There weren't enough votes to get a good ACA through, even though every centrist and their dog knew that a public option was the way to go. The reason why there weren't enough votes was because the Republican component of that base didn't want to have the conversation.
Why do you think so many self-identifying Republicans currently realize that a public option was preferable, but this discussion wasn't in the party ten years ago? Because the wingnuts were in charge, that's why.