Historically speaking the ICC was never set up to be an independent body. England, Australia and South Africa got together to form a body that existed to arrange cricket between the three of them and called it the Imperial Cricket Conference. Over time they have changed the name and welcomed more members in, but it's always been a self-serving institution that exists to serve it's board members.
Cricket has no independent governance, no legal framework anyone has to abide to. It's just the big players doing what they want and the smaller members jumping through their hoops in hopes for a handout. And it will never change, because the second an independent cricket council tries to call the BCCI up on a violation, the BCCI will pick up it's bat, stumps and ball and go home. No money for anybody. And they wouldn't risk that. Because Money matters more than Integrity, and rather than try and make ends meet without relying on the BCCI, they would rather suck on the BCCI teat.
It all stems from when they realised how lucrative the Indian market was. All these boards planned these big budgets and expenses around this income they were now suddenly going to get from the Indian market, and it worked for a while until the BCCI wisened up and realised they have a leveraging tool. Now they run world cricket, and all these boards have started spending so much -what with inflated salaries, failed grassroots programs, and expensive changes to infrastructure and domestic cricket- that if this supply of cash is cut off they'll go bankrupt.
Bad, greedy, short-term leadership has led to a situation where the only way to survive is even more bad, greedy, short term leadership.
And you can't even say the ICC has failed world cricket, because they never set out to protect world cricket to begin with. It was all for their own self interests.
It's such a mess.