This means that my duties as CTO or lead might be more spread out, that I have to work extra hours to feel like I'm getting enough personal coding time after factoring in administrative work, but it's worth it for me because my entire team moves faster and writes more robust software.
Unblocking someone doesn't mean doing someone's work for them, it means being a mentor, understanding their problem, and providing surgical assistance while also teaching them the same process you used to arrive at the solution.
I've had coworkers push back on this style before, opting sooner to fire employees for not immediately being key players. Meanwhile, I've cultivated some tight-knit teams where everyone is in sync and motivated to work and assist one another, regardless of skill level. Over time, the culture matures and the team is capable of managing more problems on their own.
I completely agree that when the high performer jumps to “let me just do it” it creates a negative multiplier to the team as most of the work will be only understandable by that one person and the rest of the team can do less than one unit of work.
Which is why it is very important for high performers to either know how to work in a team, or be assigned work where they can just do their things on their own.