If I employ a brick layer I can easily judge the quality and rate of their work, it's easy to compare with the guy I hired last week.
Contrast that to programming where there is no physical artefact, it's not like we can measure lines of code or numbers of files and derive some value, in most cases less lines of code is better.
People know this so instead of doing good work they start to play games to get ahead.
That's not to say a good leader can't fight against it but to think it's not there is naive.
I have personally worked at at least 2 companies now that I would describe as "non political." This was achieved by having small, well-defined teams. One company had extremely clear paths for promotion and raises, the other had no framework whatsoever. In each case, the culture was defined every day by a manager - company 1 was the sales division lead, company 2 is the CEO who sits several desks to my right.
I not only think it's possible to have a non-political system, I've lived it twice. I think cynicism is easy, and that's why people call folks like me "naive."