This seems like a great way to think about this. The core reason why these kinds of patters keep popping up is that making people jump through hoops to get discounts is an effective way to price discriminate based on how much people value their time, and how much you value your time is going to have a very strong correlation with how much you're possibly willing to pay.
I think the fixes for this are largely going to be cultural. For example something that could help is everyone having more pride and simply refusing to jump through pointless hoops for a discount (even if it is technically worth their time).