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.