Hola:
Algo he vivido estos últimos cuatro años sobre lo que comentas. Con el punto uno y dos no hay mucho problema. Es normal que las compañías tengan que gestionar y controlar un determinado presupuesto y un time to market (que sin ninguna duda, no da igual). Con eso, en mi opinión se pueden encajar técnicas ágiles de trabajo que te aseguren entregar el mayor valor posible. El problema en mi opinión es el tercer punto (si lo entiendo bien como un alcance definido al detalle al principio). En la gran mayoría de los casos, es imposible definir al detalle y exactamente el producto antes de empezar. Y en los casos en que no sea imposible, sin duda es un gasto inútil, por más que se empeñen aquellos que vienen de otras ingenierías o del mundo militar. La construcción del software tiene otra naturaleza que nada tiene que ver con esas disciplinas y que ofrece unas ventajas competitivas asombrosas a quien lo entiende bien.
Centrando el tema y sin irme (más) por las ramas: En mi caso personal, he buscado sponsors y aunque muchos siguen pensando que es cuestión de "suerte" o de jugar con ventaja (porque no elaboras esos "tochos" de documentación) se consigue entregar el máximo valor posible, no siempre el 100% exacto de la definición de inicio, pero sí lo mejor posible, que ya es bastante.
En cuanto a los contratos fix price (o llave en mano: otra intoxicación de la comparación con la construcción ladrillera), desde mi punto de vista de cliente, acabas disfrazando T&Ms, negociando para compensar y aplicando mucha mano izquierda para flexibilizar requisitos que es la receta que te dan todos los sabios a la hora de acabar un trabajo de desarrollo de software.
Saludos