You are correct that that is what a change order is for, but it doesn't solve the problem.
First off, you'd be shocked how many owners won't sign a change order under any circumstance. The choice for the builder becomes, "Do I make a mountain out of this now (and potentially stop the project entirely), or try to keep things flowing and hope for the best?"
Secondly, the bigger problem for a builder is the promises to the next job. If I bid a job that is supposed to take 3 weeks and an owner asks for changes which stretch it to 5 weeks, what do I tell the next customer I promised I would start in 3 weeks? The dynamic is that I end up staying on the current job and put off the next one, or start the next one on time like I promised and juggle 2 jobs at the same time.
Either one earns me the wrath of customer #2, and possibly an internet thread complaining that I don't show up or get the job done.
Of course, the fair response would be for me to tell customer #1 that I'd be happy to do the additional work, but that I am a man of my word and will have to go to customer #2 on time as promised while customer #1's job sit idle for several weeks, then come back and do the additional work. Yeah, that will go over well.
The solution for the consumer is to work with a company that is large enough to have multiple jobs running and the ability to move staff from one job to another when one slows down. However, these companies are expensive, and most folks don't want to pay the cost of working with them.
It's a catch 22.
