My understanding (please correct me if I am wrong) is that node operators have the ability to choose the version or Core they run. This allows nodes to decide which changes they wanted to support.
If nodes took on this responsibility than developers wouldn't be a centralizing factor and there would be less motivation to manipulate them with money. With a diversified group running the nodes than code manipulation would be less of an issue.
Could the Core team make it easier to change the version of Core that a node operator is running? This would help solve the problem.
I don't think that developing core was intended to be a money making job!