There is nothing that prevents an online voting system from having a truly secret ballot. There is a class of algorithms[0] designed to compute a verifiable result from private inputs without revealing those inputs. One of the major applications of them being researched is voting.[1][2][3]
[0] http://en.wikipedia.org/wiki/Secure_multi-party_computation
[1] https://eprint.iacr.org/2014/075
[2] http://arxiv.org/abs/1502.07469
[3] https://www.iacr.org/cryptodb/data/paper.php?pubkey=2203