Since most coins held in exchanges are "actually" owned by the exchange in exchange-controlled wallets, while only nominally owned by the exchange account user according to internal exchange policies, how would this be reconciled?
When you vote your tokens are staked for 3 days. If the exchanges were to use the users's funds to vote, these tokens would get staked (essentially frozen, unmovable) and they run the risk of not having enough tokens should people want to withdraw their tokens.
So while it is theoretically and practically possible for exchanges to use the users's funds to vote, I think it is unlikely that they would actually go ahead and do that without permission from the EOS token holders. They would get found out, and it would cause a major stink.
The short answer is that tokens held at exchanges should be considered "out of circulation" for the purpose of interacting with the EOS mainnet (staking for voting, resources, etc).
I would not be surprised if some exchanges decide to provide some basic tools for EOS owners. They are already announcing support for some airdrops, providing an interface for voting or performing some other basic functions on the EOS mainnet is not too far fetched especially as some of them are running for BPs themselves.
UPDATE: this announcement from Bitfinex is relevant, it does communicate that if EOS holders approve Bitfinex's proposal to allow them to participate in the vote with users's funds, Bitfinex will not use the funds to vote at their discretion, but will vote for the top 30 BPs with the idea of getting to 15% total votes faster.