You misunderstand, it should not be centralized under any development team. There should be many developer teams with many competing implementations of Bitcoin this is where the decentralization of development should lie.
It is interesting that you say we can not crowd source engineering decisions. If that is the case then it would make sense that different implementations of Bitcoin have their own internal decision making processes, and some like XT would decide on having a "benevolent dictator" so to speak. I believe this is rather common throughout open source projects. The consensus and the choice lies with the miners, the economic majority and the users in terms of the code they choose to run. This is how Bitcoin can remain free and decentralized.
Should? So what? How do you enforce it? We already have several implementations, and where are they?
Development skills are a scarce resource, and having multiple 'competing' implementations is actually wasteful. In a sense, Bitcoin Core is a kind of natural monopoly, because only this way it can attract sufficient expertise, and thus be robust and stable.
Maintaining a fork of Core code is actually much easier than maintaining different implementations, and XT, when it appeared, was OK -- it did implement some client-side BIPs that didn't make it into Core. It only became controversial when it started pushing changes to the protocol.
If you mean many competing versions of Bitcoin
protocol, that's a completely different domain.