Totally agree. Fees adjusted to voting power are absolutely necessary.
IMO the best way with voting is to make the fee for the vote proportional to the stake.
What fee?

If transaction fee then stakeholders would return them by forging own transactions in own blocks.

If fee to some voting address with somewhat redistribution after voting then it is gamed again by creating many accounts.

The more I think about it the more I think it may be a good idea for you to to be forced to forfeit fees you pay in blocks you generate, specifically for reasons like this. Not sure where they would go, maybe just send to a random account that had a recent outgoing transaction. That would be sort of cool, actually.
the whole gaming thing though, it why like I said before Im sort of predisposed against global voting as a method of implementing NXT operations though. so far no one has come up with anything bulletproof, so maybe it is just impractical... the only thing I can think to even come close to penalizing for gaming by using multiple accounts would be to make voting cheaper the more NXT you have. but then that is very unfair for the people with not much NXT! so maybe no solution at all?
It could be made so that an account that has a transaction in the current block is disallowed to forge the current block -- if the account forges the block and has one or more transactions contained in it, the block will just be rejected by the peers and the next account in line gets the opportunity to forge.