The substitution thing has worked well for me - they now alert you in the app before and you can yes/no the substitution. You can also mark “ride or die” on items and if they can’t get it they don’t substitute.
I don’t recall if they upcharge for more expensive substitution now - before it was free, which was a bit abuseable.