Why doesn't someone who wants to operate vending machines also operate a mining rig that specifically prioritizes confirms from transactions from it's vending machines? This way, it could release the goods immediately from receiving the btc and then expedite the confirmations thus minimizing risk of double spends.
Because you don't know how mining works
You have a point. After your comment, I realized there are probably a lot of things regarding bitcoin that I only have a cursory knowledge of. So, I started to do some research to try and catch up. Any response to help verify or dispute my understanding would be greatly appreciated.
The first thing I started with was the Satoshi original white paper. Something stood out to me, in section 8:
... Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.
This sounds very similar to what I was describing, except exchange miner with node.
So then, I thought to myself: well, what is the difference between a miner and a node? This is something I always assumed was the same thing.
But, AFAIK, it would seem that a business would be wise to run a node for speed and security. Wouldn't businesses do this in the future and wouldn't that in turn become a lot of the power of the network, even when there are no more block rewards.
To make it more effective, you would verify your own transactions faster than others. I suppose it would be difficult to single out transactions from their business; so like, confirm the vending machine transactions before others. Would that be possible? Could the miner single out transactions that are a certain value, technically?
A node keeps the block chain, and propagates new blocks.
Miners get their work from nodes.
A merchant wants to have a node, so that they can be responsible for making sure that their transactions are broadcast to miners. But this does not mean that the miners will accept the transaction when it reaches the node they are mining from. There are several reasons ranging from not enough fees to finding a valid block before re-writing the current work to include your transaction.
A merchant can also be a miner, and attempt to encode either all transactions or even just their own transactions into a block.
But there's no guarantee that they will find the next block, or even one any time soon.
So neither running a node, or mining yourself, becomes a guarantee against a double spend made on someone else's equipment (vending machine, online merchant, whatever).
It's not directly possible to directly affect the "speed of confirmation" for your own transactions except by adding masses of your own hashing power to the overall network (as a miner, not a node). And if you overdo that you'll just push difficulty up and start the cycle over.
You increase the "speed and security" of transaction when you run a node by ensuring that your transaction gets delivered and included in the workload of as many miners as quickly as possible.
As to whether or not a vendor, or third party can selectively decide what to add to a block, they sure can. But it doesn't mean they can just add that block to the block chain.
hth