I would say it's a good idea, but it is more complex and I'd still prefer to rely on people's decision. Before I balance the teams, I check /scores few times, to see if the gap between scores is extending, stable or decreasing and when I play I try to feel if it's unbalanced, like you said, there are some parts of map, where it's harder for one on another team push/defend. Sometimes one team focuses more on obj than kills and, despite worse scores, it wins map.
There are also variables like respawn times, players that joined recently (I know not many look at these, they're included in game sense, but I think it should be considered, when we try to estimate size of unbalance (hope you understand this part ^^).
Another thing is how to calculate how many players team needs, make a formula, compare result and accept that e.g for each multiplicity of 50 the team needs 1 more player or prioritize some variables over other and decide if teams are unbalanced (e.g kills are more important, so when the difference is too big, lock one team, if not, compare damage, etc.).
As I said, overall this issue is interesting (and maybe worth considering), for sure it's not easy to decide how to balance teams (If we talk, that it should be automatic) and I don't know how about possibility of implementing that (I guess it should be possible).
I felt like I was writing an essay on my english lessons ^^