I agree with your concerns. I think when voting for block producers, users should vote according to how well the block producers are making the eco-system work as a whole, and not their personal gain from them. I have to part with your reasoning when you say that the the block producers would end up giving away all of their rewards. In the case of Bitcoin, a potential miner has to get the hardware makers of the coin to give you the hardware, but the entrepreneur has to have an expectation of profit in order to buy the hardware for this purpose. Now running a Steem witness node requires a high-end machine, and I would say the application is probably even more demanding than running a Bitcoin full node, at least in terms of memory. The block-signer is going to make sure he runs enough to maintain the machine and make a nice profit. The voters can vote for the Witnesses that run at a loss but eventually these block producers can move their investment into something more profitable. So, the rational agent will hold back the cost of running the node, and some profit before paying their voters with the rest.
There was a bribe attempted by someone who wanted to be witness, and it seems to have got him into a situation where he has to run a node but not get enough rewards from the blockchain to run it with. His bribe was to vote up with 3 cents one of our posts each user. I laughed and moved on to the next article. Later, I looked into his "steem repo" project and his "steem discord" project. I sometimes vote up his posts, now. It is surprisingly cheap to bribe voters to vote a witness.