But my first transaction was mutated, and the mutated version was accepted into the blockchain. This means that the transaction I used to pay for my donut is now invalid, and Waves/BitPay won't get the money (and I've already left the store).
Yes, that is possible,
but that's nothing new. Accepting with zero-confirm transactions is risky.
I disagree. I think the community now sees zero-confirm transactions as more risky than prior to the malleability attack. I know I do. Previously, I think most people were under the impression that to invalidate a zero-confirm transaction (e.g., buying my donut at Waves in Vancouver), the customer would be the attacker (and basically had to be in cahoots with a nefarious miner in order to double spend). The malleability attack has shown that even if both customer and merchant are honest, proper fees are paid, and the transaction propagates across the network, it's still possible (and in some cases probable) that the transaction doesn't go through (and thus D&T's solution to disallow transactions using unconfirmed "change" outputs).
So I agree with D&T that we need a smarter way to deal with unconfirmed change, until malleability is properly fixed. My question was if we enforce this new change rule, how often will casual users find themselves unable to pay immediately (such as my donut example)? How will this impact the experience of say, my mom using her smartphone, who couldn't wrap her head around this?