“Having a bunch of ‘non-mining full nodes’ in the network will not prevent a government from taking control of the miners.”
Yes it will. At least, some non-mining full nodes can quickly turn into mining full nodes in the event of a crackdown on miners. Without non-mining full nodes the response time to an attack on miners would be greater.
The second reason for running a non-mining full node is to enhance network connectivity so transaction message propagation is optimal (sybil attacks are not the issue here on a gossip network).
The third reason has to do with game theory so the balance of power between miners, users and developpers is sustainable. Users = non-mining full nodes because its hard to imagine businesses using the bitcoin network (exchanges, payment processors , etc) not running their own non-mining full node to prevent network connectivity issues.