a) Having more votes than the number of witnesses was originally by intent. In fact the original number of votes was unlimited. It had to be limited due to an expoit having to do with backup witnesses (but having no effect on top 20), so in order to avoid making it smaller than 20, it was set at 30. The idea of having more votes than top slots is that you want a top 20 that is "hard" to get into, for exactly the reason stated in the post:
In my view, the fact that it is so hard to make it to the top is a good thing. This helps to secure out network against attackers. It also separates the strong from the weak, and helps to ensure that the people who make it to the top actually have what it takes.
If there are 20 "good" candidates, you want all (or at least most) of the responsible stakeholders voting for all 20 so that it becomes that much harder for a "bad" candidate to work their way. in fact, if there are 30 or even 50 "good" candidates, you still want them all getting voted by responsible stakeholders, to serve as firewall that keeps bad candidates from rising higher than 31 or 51. (In fact all of the responsible stakeholders can't vote for all 50, due to the 30 limit discussed above, so this is actually a bad think about the current limit.)
b) I believe the main reason considerations are: 1) decentralization (preventing a "small" number of parties from taking control of the network; 2) difficulty of coordinating updates, including emergency updates; 3) burden placed on stakeholders to evaluate "good" candidates (recall from above that we want responsible stakeholders to vote for at least 20 "good" candidates and if 20 were higher than it would be even more effort to do this); 4) time taken for irreversible blocks (IMO this is relatively unimportant, but I'm including it because @timcliff mentioned it, and it is correct); 5) amount of rewards received by each top witness.
Now with regard to a), we obviously recently had a situation where the network was "taken over" by a single actor with a lot of votes. It is often claimed that by reducing the number of votes, such a takeover would be harder to do. This is only partially true (a large actor could split their votes into two accounts, and since everyone else would be splitting their votes too, the vote totals on the top 20 would be quite a bit lower, likely close to half), but it also isn't the only security concern. Maximizing the height of the "firewall" to keep hostile actors from voting in any witnesses is also a good thing.
The large actor having a massive (more than 2x everyone else voting, at least prior to takeover when there were fewer votes) stake is something that is supposed to be an exceptional circumstance that is very hard to pull off, and in fact it was an exceptional circumstance, so I remain unconvinced that reducing the vote total is a good idea overall. I'm a little bit more favorably inclined toward the "1 SP, 1 vote" idea where you can split your vote but the strength of each vote is then reduced by 1/N. In that case: a) it doesn't reward splitting your account to be able to vote for more witnesses, and b) all responsible stakeholders would still be able to vote for all "good" witness candidates and keep up that firewall (good), though the vote totals aka "firewall" would still decline a lot (mostly bad).
thank you so much for taking time to provide all this explanation/info.
!ENGAGE 10