Instead, changes almost always have to be justified on the basis of their value to the project itself or to actual users of that project. "We have to implement this feature because Bob from Sales told this customer we could already handle it, and we really want their business" just doesn't fly - the feature has to be valuable in its own right, or it won't happen.
The right to fork is another critical element in making this work - even the power of core developers on a project is limited, as if they do anything too ridiculous, then they may find the community is unwilling to follow them.