A lot of good reasons here, but I am going to propose one that I believe is happening.
All (well, most) the other churches have endorsed homosexuality, abortion, euthansia, contraception, embryonic stem cell research.
The Catholic Church has maintained its spine and stood against these items.
As a result — people have fallen into the trap/heresy of modernism and have taken the easy way out -— Let’s attend another church (small c) that is more modern thinking than the Catholic Church.
So they go off and are soon supporting all the sins mentioned above.
I agree with your reasoning.
Whatever the cause de jour, the Church is in the way. Free love, contraception, abortion, homosexuality, same sex marriage...
To remain truly in the Church is to stand apart from this culture and to oppose it and to be quite unpopular. Some aren’t willing to do this.
Non-Catholic churches collectively produce people who mostly vote against the left’s agenda of abortion and homosexuality.
The Catholic denomination produces people who mostly vote for the pro-abortion, pro-homosexual agenda.
Yet well over 50% of those who call themselves Catholic remain in the Catholic church and support homosexuality, abortion, euthansia, contraception, embryonic stem cell research.
So no, there is not a mass exodus out of Catholicism for the church officially taking a stand because it also officially does not enforce its very own rules about those who support such things.
If it were true that those who supported such things leave the church for other churches, then there wouldn't be such a problem WITHIN the Catholic church. They would have bled off and left only conservative Catholics who line up with official Catholic teaching, and that hasn't happened.
And right now, the biggest supporters of aforementioned vices appear to be the priests, who will not refuse communion to those errant Catholics.
With their mouths they say one thing. With their actions they say another.
It's called hypocrisy.
Actions speak louder than words.