The reason that they get away with it is because customers go along with it.
If you had dug your heels in and said "you agreed to deliver it, DELIVER IT", and not taken no for an answer then they would eventually have capitulated.
Being peeved doesn't cut it; continually acting peeved until you get your way, does.