Couple of points:
1. BCCI is well within its rights to impose these conditions on players who wish to play for them. I have seen people (including some business leaders) question bcci's right to do so, have called it violation of players' rights etc. which is utter nonsense. Playing for bcci is not a right guaranteed by constitution. If you want to play for them, you abide by their conditions, as simple as that.
2. As for whether it makes sense - I don't agree with the stated reason (spending too much time on shooting ads etc) but there are other grounds for justifying the decision. There is no doubt that endorsements do not reward all performances equally. Batsmen who do well in one-dayers end up with bulk of endorsement deals whereas bowlers and Test batsmen (Laxman vs Yuvraj/Dhoni for example) don't get as much. This can lead to and has in the past led to frictions within the team. If bcci doesn't want to create such differential rewards, if for them harmony within the team is important, then it makes sense for them to impose restrictions on endorsements. There was a similar case in my previous company when a customer wanted to reward some of the team members, but the company didn't allow it - they said we have our own performance management and incentive schemes, we don't want you to meddle around with it.
3. In any case, I have always argued that boards are more powerful than players in the current system and I am just happy to see the players get screwed :-) If this leads the players to go play for a parallel league, as a consumer, it will be better for me.