Even full nodes face the first question. I configure my full node with 60 connections (enough more than the default of only 8?) and just hope the builders of the software did a good job and that the network hasn't partitioned me away from the good ones. I do manually compare to various public sources of the blockchain, e.g. blockchain.info, etc., and hope they aren't compromised.
.....
It seems like not such a good idea to have so many outgoing connections, as it's using up the scarce resource of 'full nodes with non-firewalled open incoming ports'. You may instead want to force the default amount of 8 connections to nodes with operators you trust and allow as many incoming connections to your machine as it can handle without causing high relaying delays. I believe there are a few folks who are attempting to identify those that are connecting to unusually large amounts nodes, as such a technique can be used to discover the origin of transactions. There are some remaining fragments of a sanitized thread about this here:
https://bitcointalk.org/index.php?topic=978088.0Well, if I were a miner that agreed with other miners and with a majority of users on a rule set, *against a whole bunch of non-mining full nodes that do not want this rule set*, I'd have all reasons to set up sufficient infrastructure to have my node accept thousands of incoming connections. After all, if I'm a miner, I have enough resources to do so, no ? Compared to the investment in the hashing resources that I have to own, or I have to rent, this network resource enabling me to allow users to connect to me or to a few of my peers seems small I' d think.
If we are, say, 5 mining pools owning 95% of hashing power agreeing on the rule set, we could set up each one of us, a big publicly known node that accepts a lot of incoming connections.