Toast is right you need to store who everyone is voting for (multiple delegates instead of 1), If you make a transaction that says I only want to vote for delegate 4, You need to know that your stake was previously voting for delegates 1,2,&3 to know who to take votes away from. (sorry, I posted without thinking)
Maybe people would have less reason to split up their stake to vote for different people?
I think people have to pay an annual registration fee for delegates so maybe this keeps people from registering junk delegates?
Storing who everyone is voting for is not the same as storing the full history of voting. I still wonder if you actually need the full history. I still wonder why all the voting stuff has to be stored indefinitely. I woke up and thought to myself "oh duh! It is a transaction with an associated cost." Then I see Bytemaster say it costs nothing. So I'm still not sure, but I got to throw the idea out there.
Paying registration fee for delegates is ok but realize the network is supposed to resilient. You limit the # of delegates and you start hurting resiliency at some point.
As far as Bytemaster calling the network's users "lazy" and being offended. He is designing a system around what will be typical user behavior. Agent, we're both nerds on a forum willing to show up on Saturday mornings and do this stuff. We're far from typical. Most people are lazy. The assumption that user's will be lazy about voting is one thing I trust.
However you have a point about well (overly?) paid delegates causing perverse incentives. This is one thing that concerns me. Once delegates start being paid a lot, you've added an incentive to start monkeying with who is a delegate over reasons that are not aligned with the network's health. There is nothing significantly punitive to stop people.
Let me give one brief example of unforeseen consequences and I'll shut-up. NXT has large transaction fees. Any wallet can mine blocks. I once withdrew from Cryptsy and it took 5 days with nothing happening. The short of the story is that I finally got paid but it was on a block with numerous other transactions. People excuse the Cryptsy withdrawal delay saying it has to be manually done because it is "new". Well I wrote a script to automate NXT payments and I know there is absolutely nothing complicated that couldn't readily be adapted from a bitcoind forked coin accounting code. I
theorize that Cryptsy waits for when they are forging a block and then throws on all their transactions so they get the transaction fee. I may very well be wrong but it makes sense and seems quite plausible. So by forging off a large wallet + large transaction fees, NXT introduced a weird incentive that has one of the more popular exchanges taking days to withdraw. This is all done at the expense of other forgers and the end user. Who would have seen that outcome of this incentive?
I'm afraid if you pay delegates too much + voting system then we will end up with many unforeseen malignant behaviors. So the utmost care must be taken when designing these things. I put far more faith in Bytemaster than most smart people and hope his team gets it close enough to optimal, but they need to keep in mind that paying delegates a lot is very likely going to cause bad behavior down the road when the money becomes significant. There are too many actors involved for me to even attempt analyzing it in my head. In addition the ability of the delegate to afford to pay for sophisticated schemes comes into play. It goes beyond my analytical ability.