They take a list of features given to them by product people who have gathered the requirements from all the interested parties. They then attempt to design all the technical architecture to support those features. They typically wouldn't decide anything not related to technical aspects. Such as "this is impossible because of x, y, z" or "this is very expensive to do so I don't recommend it". It's a push and pull but if an engineer ever said "we're doing this feature because I want it", typically that would be strange and they would not get their way.
Why do you ask? I am quite confused by this exchange.