it's not a bug but is a bad working on the voting system
e.g.
in a server with 10 players
if 1 player calls a vote for restart but nobody votes "no" the vote will be approved
a callvote percent cvar of total players (not the voting players) is needed
the only way to avoid this is to disable call vote
another way is making a callvote script using servercommand event
I had started on a script based voting system, with a GUI of sorts to help players choose maps or kick players etc, ill find it and finish it one day
Purple's Playground
OBJ : 103.29.85.127:12203
xfire: purpleelephant1au
email: purpleelephant1au@gmail.com
skydrive: PurpleElephantSkydrive
The idea was that when there is voting ON, everybody is invited to vote, but you don't have to vote, but if you don't vote then you have to deal with the outcome of the voting anyway.
This means that you don't have to vote YES or NO.
So when one players calls a vote - he gets 100% of VOTING population. If somebody else joins voting, he can vote NO and it will be 50/50 of voting population which now is 2 players.
This way you have right to take active role in voting or not.
This system is close to how elections work in most countries IMHO. If only one person would go voting in some country, his/her vote would decide everything.
And this is why callvote has timer, to let other players join voting before "elections" end.
As I understand, you propose to count people who didn't vote at ALL as default NO vote.
I think with this change, you can achieve opposite - no votes will pass ever because majority of players will never care to vote at all. Plus still when somebody is in Spectator mode, passed vote (for example a map change) will have an effect on him, even if he didn't take part in the voting. So still if everybody would be in Spectator except one player - you would still get the same behavior, though is less likely to happen.