I run a non-mining full node (it entertains me to do so). I'm delighted to feel like I am contributing in some small way (8 outgoing and 52 incoming connections --> ~200GB per month). But, I realize if I turn if off then the miners will plow forward mining without me. The users would have to connect to a miner (or some other non-mining full node). *If* all of the non-mining full nodes were turned off then the miners would plow forward mining without us. The users would have to connect to a miner, period.
Bingo. That's my point.
I think maybe the point is miners don't just mine, they also handle connections from users. If a miner just mined and didn't handle connections from users then they wouldn't have any transactions to pack into blocks.
Absolutely. We should clearly define what a "miner" is in this respect. A "miner" is the entity that decides *what* block to build on *which* other block out there, and puts that block at disposal on a node. A "miner" can be a complex entity, like a mining pool and its customers with mining hardware, selling hash power to the mining pool, or a single entity (solo miner). The "providers of hash power" are not, in this respect, "miners" as we define it here, because they simply provide hashes, and do not decide upon the block to be built (the contents of the block, the transactions ; the previous block hash, and the protocol according to which it will be built). The miner, in this conversation, is the entity deciding that, and *hence has a node*.
As I said before, given the cost of mining, the cost of setting up an efficient node is minuscule compared with it. There's no point in investing a huge amount in hash rate capacity, and wasting a lot of electricity, and not have a sufficiently efficient node that has strong connections to other miner nodes, because the time wasted to learn about blocks made by other miners, wastes much more money by lost hashing (on orphaned blocks) than the bit of cost of good infrastructure in a strong node, with good network.
So we can presume that a miner node will do everything, if the "proxy network of non mining nodes favorable to him" is too weak, to set up somewhat better node infrastructure that can serve directly its clients, the users, that want to use the block chain he (and his fellow miners on the same protocol) are mining (in other words, his coin). Especially if that user is an exchange that lists his coin !
This is a bit like torrent: if you want to distribute a file, you can count on other torrent nodes putting your file at disposal (distributed network). But if your income depends on having this file at disposal, you will make sure that you have enough server capacity to distribute the file yourself on the torrent network, independent of all the other torrent clients refusing your file and/or putting other files at disposal.
Now, as to the users sending transactions, that's the same. If you are a user that *wants your transaction on the block chain of your choice* and you cannot find enough distributed nodes doing so, then you can connect your WALLET directly to a miner's node, or you can connect your NODE directly to a miner's node, to send your transaction.
Again, the distributed NETWORK of bitcoin nodes is a nice thing that protects against a *communication attack*, but if direct internet links are possible to miner's nodes, and if those miners have installed sufficient network capacity, then the distributed network is *optional*, and cannot impose its will.