Thank you all who have replied.
As I said previously, an average sale could be a day's pay for an average (Filipino) worker. Not an insignificant amount. The shop employee handling the transaction would have just a basic (Filipino) high school education. This would mean that he/she can do no more than follow basic instructions - if your lucky.
Neither the sales person or the customer are going to wait for even the first confirmation. The merchant (shop) cannot set or easily check the transaction fee. Let's assume that the customer makes the purchase with zero transaction fee. (I know, Bitcoin Wallet does not allow this.)
So, the customer walks in, buys a coffee and food (take-out) with bitcoin zero transaction fee, then leaves the shop. How does this customer "double spend" his/her bitcoin?
What is "another spend that uses the same inputs"?
Any Bitcoin wallet should allow 0 fees for transactions. Given that no POS is used, no insurance can be provided. To double spend his Bitcoin, he need a mining pool who uses RBF patch and another transaction spending the same input to another address with a higher fee. The pool would then accept the higher fee transaction. Alternatively, he can get a mining pool to mine the double spending transaction for him and the over transaction would be invalidated. If he's lucky and no pools want to accept it, assuming that it isn't rebroadcasted, he can craft another transaction and relay it to he network with a fee and the pools would accept it after the node has forgotten about the transaction or the pool has forgotten about it.
Another transaction spending the same input (UXTO) means that the alternate transaction would be spending the same input as the first transaction.