There are problems with paper voting as well.
- bad buy gets a blank vote page, somehow.
- bad guys marks the page as he wants, then gives it to voting guy.
- voting guy goes to vote, puts the already marked vote in the box, carries out the new blank vote page.
Loop and repeat.
Or while counting the votes, if a city is expected to have an heavy turnout for the wrong candidate, if you can manage to sneak in a bad guy as the one who parses the ballots, he can have a small piece of pencil under the nails, and use it to erase "wrong" votes or "complete" blank ballots.
It requires more skill, maybe a couple of them working together, but there are lots of money in an election, so finding the skilled people might not be that impossible.
At the end, you only have to decide what to trust, the computer programs or the people.
IMHO, we need to harden the paper balloting. It's easier to harden, more expensive to fool and you can't fool it "globally" but only locally.
Either that, or provide proofs of correctness and verifiability to everyone, for all computers involved. Kinda harder, although more awesome for us hackers.