I agree completely that this are more specific and can draw the focus away from the heroes. I really do like the flexibility of telling a story regardless of my party composition, or to allow me to introduce important characters that don't weirdly sit on the sidelines when facing important monsters. But they should have the following abilities:
Beef (Warrior): A sack of hit points that distract monsters and do a steady but low damage output. Finishing moves and damage spikes are all handled by the heroes, but allows the heroes to take on higher level encounters than they would on their own. Big boon for a party full of squishy heroes that players love.
Enabler (Expert): Can have expertise in a skill that the group lacks to keep the story moving (a pirate captain in a party where no one has water vehicles), and can dish out some advantage for the heroes to accomplish some important things, gives the help action to make the heroes do what they do even better. But never solves the lock the group's thief can't handle.
McGuffin (Spellcaster): I can think of only one reason to employ a complicated class like spellcaster to make them a plot point. While Warriors and Experts make good plot point characters I also use them to fill holes, like a critical skill or some survivability. I only include spellcasters as travel buddies for one major reason. The priestess who can cleanse the temple, the wizard who knows the sequence of runes that opens the portal to the Abyss, the Druid who asks the heroes accompany him to a harvest festival where the story eventually starts. I'd give them a Warlock spell progression to keep them lean on options and tracking and cantrip focused, and give them ritual casting to allow them to meet other needs. If they cast wish, it's only because there is a wish scroll at the end of the dungeon and no one in the party can handle scrolls.
I'd rather focus on the stories DM tells, and keeping PC's at the center than just trying to make sure equivalent groups are out there.