How do we explain to Bob that he doesn't get his donut without resulting in a fist fight, a discrimination lawsuit, an all day seminar on the technical workings of the blockchain, giving away a free donut, and/or potentially losing Bob as a regular customer?
You probably won't be able to so the only solution is to prevent it from happening to begin with.
So basically stop accepting 0-conf transactions for all purposes, even from trusted customers, until all wallet software has been updated to not spend unconfirmed change? This seems like an extremely severe setback for bitcoin adoption and its utility in general.