I've been fortunate enough that I've had the same catchers for a number of years (just now losing one of my best to college after having her since the 7th grade middle school team), and have been able to work with them on calling pitches, and game situations, but Hilliarddad3 is right; you must have good, clear and honest communication between the catcher, pitcher and coaches. Also agree on the no dads (or moms) in the stands calling pitches - if you're calling pitches for my team you're either behind the plate sweating in all the gear, or you're in my dugout as a coach.
Personally I believe it should start at the younger ages and be built upon like we do everything else. For example, at 10U most pitchers are only throwing a fastball and maybe working on a change - not a lot to call, but you can start working on the placement (may not have a pitcher that can put it there, but that's another discussion), reading the batter's stance, and game situations. You get to 12U and start having a pitcher with a curve or drop, start discussing with the pitcher and catcher the best time to throw those pitches, how to set them up, when not to use them, and reiterate and build on placement, stance and game situations. And so on up through the ages. If you keep building, you end up with the players every coach dreams of having, but if you don't invest in the player's knowledge and allow them the ability to make and learn from their mistakes when they're young, it's harder to build the confidence when they're older. (My observation, as we age, we tend to be more risk averse.)