I believe there is another reason you need less experienced developers (both junior and semi-senior). You will certainly have senior developers who, like you mentioned in a paragraph, want to become VPs, CTOs, Team Leads and so on.
They need not only to guide people technically but also become Counselors, Human Managers, Career Builders or whatever you want to call it. You need your seniors to have time to build soft skills and work with the junior and semi-senior devs in bringing them up.
You probably won't get far in your career without soft skills. From one side you can always look "up", work with managers, POs, PMs and build your soft skills when communicating "up", but you cannot be a good lead if you never work your soft skills "down" with your colleagues, build relationships and bonds, understanding their emotions and thoughts.
Like everyone is posting. Mixing is always' best. Sometimes you still need at least 1 senior in the team, and that's a great opportunity for that senior to become a tech lead, and for the juniors to learn from an experienced person. Results will be good. But as a manager of that team, you can expect delays and bad code here and there. Senior developers are still learning!
So hiring only seniors is hiring people that might still be eager to learn but they will have no room to do so. Probably you will only be left with the less passionate ones, and just a couple of the good ones (probably because they see some career opportunity among this group).
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.