In my understanding a smart contract on NEO blockchain is deployed and has an own address. So by sending «my» NEO to any smart contract I loose the control until the contract allows me to withdraw my NEO again. For reference see the lock contract: http://docs.neo.org/en-us/sc/tutorial/Lock.html
A different story is if the NEO stays in my address just beeing locked (**marked for voting**). So during the voting those NEO cannot be send to another address or used for anything else. That should be handled internally like e.g. claiming gas.
I think people don’t want to send NEO to any contract for voting. It just feels «not good» to move investments to smart contract and withdraw them later. My opinion.
By locking NEO without actually sending them that should work.
Big institutions will always have the power to buy great amounts of NEO and reach great voting power. I don’t think we can do much about this.
Thanks for your answers.