Second no mention of linear preference ordering systems like condorcet and Borda counts. I'd encourage you to visit http://accurate-voting.org.
I'm pretty sure that is at a higher level than what BitShares intends to do for voting at the blockchain level. As far as I am aware, BitShares Vote basically consists of choosing a
subset of
globally-unique entities who freely register to cast a
ballot for a given
election and collecting the single latest opaque
ballot of each
pseudonymous entity unique to the
election that has an unknown (say through ring signatures) one-to-one correspondence to the
globally-unique entities in the
subset. Any given validator can choose their own
subset using a filter that is based on the public properties associated with each
globally-unique entity (such as whether they are eligible to vote and the congressional district they live in as claimed with appropriate signatures by some set of identity verifiers that are assumed to not be colluding together) and can choose their own interpretation of the data within the opaque
ballot (allowing for a variety of possible voting methods). The blockchain doesn't have to care about any of that; only the clients of the validators do. In fact I expect to see a proper API in the BitShares client so that people could write their own scripts / third-party open-source clients that interface with the BitShares client to obtain the verified ballots and interpret and tally the votes as they wish.