you are wrong
The fact that you don't know that you are wrong emphasises it.
Your leading scenario starts off with a big big IF: If I approach a developer and say "I have here a Big Bag Of Money, and I need the following features/changes made within X time frame"...
It rarely happens, and usually the customer does now know what they want for any project that is funded with a Big Bag Of Money.
They may think they do, but they really really don't. They don't understand that 1:1 and 1:n relationships differ significantly in design and will blithely claim a 1:1 relationship and then later admit to some rare exceptions thinking that the rarity of the exception allows a 1:1 design.
Big Bag Of Money means high risk, means the developer had better find out the different between what the customer really wants and what they say they really want.
My "Why do you want that?" has become "did you know your current software already does what you are trying to get?"
Developer obstinacy often stems from experience and a refusal to be embroiled in an impossible attempt to deliver the wrong thing and then get the blame.
The irony is that you describe your pains as a developer which you wish to avoid, and then rage at other developers ability to avoid this pain.
Obviously your large bag of money isn't enough to get the developer to do what you want without question, but you blame the developer and not your bag of money.