By the nature of the game, everyone has partial information. Once everyone on your team has a reasonable amount of experience (a few seasons playing/thinking about the game, watching demos/casts, etc.), your comms can boil down to everyone offering the information they have, and your team reacting accordingly without an explicit "go here, do this" call because the conclusion is obvious. For example:
Medic: our health is good
Pocket: their demo is low
<you push>
*ubers are popped*
Medic: we're in now, they popped
Medic: we have a good uber
<you want to stay in after>
Scout: we lost the flank
<now you gtfo>
If you have to call the conclusions from the data, your comms will be slow and cluttered. When it's not so obvious, ie, your medic says your health is bad at the same time your pocket says their health is bad, you should have a "fight them" or "reset" call, and in the event of conflicting calls, it's nice to have a main caller defined because you can just always follow their call to avoid splitting.
Obviously I'm simplifying things a lot here, as in the example, you might stay on a "great" uber when your flank is low but you wouldn't stay on a "good" uber, and if both teams are low, you might fight in blands yard if your scouts have health and your heavies don't (but not vice versa), and you might fight on gran 2 if your demo is buffed and your scouts are lit (assuming in both these cases that their team is similarly screwed up so that it's actually worth fighting). Furthermore, you might have a fuzzy definition of a main caller -- I might main call 80% of the time on medic, let's say, but if I say to back out (without much conviction -- something like "we should back" rather than "get out get out") and my pocket says that we need to go in (very strongly -- "get on them now all so low omg" vs "push in") it's probably better to take his call. That said, it may be better to give 100% control to the main caller regardless of what they say to reduce the risk of splitting up (at least at lower levels of experience).
I saved a post from commft where I talk about some details of comms: https://docs.google.com/document/d/1dSDb86Hg0gLP0y5L9Id6r5J8PEkS3PN05WgXm0kYm8g/edit
I think this may be somewhat lacking in the sense that I write it under the assumption that the combo is always initiating fights -- but if you have someone initiating on the flank because they got in unseen behind, or just have a good position to do it, etc, then they need to call that timing "going in 3" etc.
Basically what I'm saying is that everyone should call about the game state "they are lit" "demo overextended" etc. and your team should act accordingly. Only when the decision is non-obvious (you have some data that says push, some that says back up) should someone make a "go in"/"back up" type call, and the only useful definition of a main caller is in the event of conflicting calls here. That said, all of this goes out the window when you have varying experience levels -- a much more experienced player will almost always make better decisions than a worse one even with less information.
One point I haven't really addressed here is calls in transitions -- here a main caller becomes more useful because they can spend the time laying out how the next fight will go while there isn't any damage to call. Even if most of this is reiterating obvious detail, you may as well do it since you're not blocking any data, and you can fine-tune what you're doing to what you've observed in the game. No matter how experienced you get, having one person's strategy laid out for the other 6 to make adaptations on top of will be better than each person adapting individually in possibly-divergent ways. To somewhat bring this back to the OP -- picking the main caller as the most experienced player is probably best, with my personal preference lending some bias to medic > pocket > demo > others.
tl;dr -- neeeerrrd