It isn't voting in the usual sense because preferences don't come into it. Nodes follow the "longest" chain and if there's a tie they use a simple heuristic to break it.
This is not correct, nodes follow the longest valid chain. The word valid is key, and therein lie the politics.
Sure, you can fork but IMO that's akin to secession or revolution, not voting.
Well, which chain is the fork? Who's rules are you using as the arbiter? What kind of node you run and what it outputs has a direct effect on what is perceived as being "Bitcoin", as opposed to "a fork of Bitcoin". Humans are the final arbiter of which one is the fork, whether it's by the nodes they run or by the code they decide to merge into the core repo (sometimes after much very political deliberation).