The problem with doing regular promotion/relegation followed by bot-cleanup is that you can end up with teams ping-ponging, relegating and then being promoted into a different league.
Here's my perspective. I think the top 3 divisions should be the 336 "best" teams, with the understanding that "best" isn't an instantaneous measurement, you might have had been among the best before, or near the top of D.IV, etc., been in an easy league etc. And the same idea applies to the top division, top 2 divisions, top 4 divisions. But a "best" team is never a bot. The owner of a bot quit. Someone who didn't quit does not belong among the 336 best teams. Someone who is 4-20, but kept plugging away is more deserving of a place than those who quit.
If there are 4 bots in a league, and I'm 0-22, I'm not the 16th least deserving team to continue in that league. Im' the 12th least deserving.
If there are no leagues with more than 4 bots, then an active team would not be protected from relegation, except by the bots in their own league. If there were a 5th bot in one league, then one 13th place team among all leagues would avoid relegation. I'm not going blow off the season because I'm in 13th place and think I'm invulnerable to relegation. I might only have two bots in my league, and I could end up 14th.
Extra teams would get promotion, only if more than 25% of the teams in the higher division were bots, or if a large number of leagues in a division were all-bot, and there weren't enough active playoff champions to promote.
Imagine that you had a 1:4:16:32 pyramid in real life. Instead of just promoting 1 team from the D.IV leagues, you'd probably promote 2 teams. I'm assuming that the current promotion scheme is a compromise. 1/16 promotion is too low, but you don't want to relegate more than 1/4. If you could increase promotions without increasing relegations, you would do it. And my scheme will handle 1:4:16:33 as easily as 1:4:16:32 or 1:4:16:64 or 1:4:16:4 or 1:4:16:0 and you don't need to know how many leagues in D.IV will be filled until the instant before you execute promotion/relegation.
Imagine that this was RL, and a team went belly up during the season. The league would step in and try to keep the team operating so it didn't mess up the schedule. Or they might simply throw away all games against that team, or they might try to patch up the schedule so everyone gets enough games. BB has implemented the first, operating the club, and if possible securing a new owner.
But regardless of the solutiion during the season, promotion/relegation would be adjusted. If there were 2 defined feeder leagues that ordinarily promoted the two champions, and had a playoff between 2nd place teams to determine a 3rd promotee, they might simply have both promote. Or they might simply have two active teams relegate.
But those sort of hand-fashioned aren't feasible in BB. So instead we simply promote extra teams to replace the teams that went belly up.