I disagree with your statements. There are many face to face use
    cases where the payment protocol is essential. Pretty much anything
    where the payee's hardware device that the payer interacts with is
    automated in public and/or operated or accessible by untrusted
    employees. In any of those cases the software on the payee's
    hardware device can be modified. Providing a signed payment request
    gives the payer additional confidence that they are paying the
    correct person.
    
    See some examples here:
    http://andyschroder.com/BitcoinFluidDispenser/2.3/
    
    
    There was a secure bluetooth protocol that Andreas Schildbach and
    Eric Voskuil and I were working on, but we never pulled it all the
    way together. This would also need a two way exchange for a face to
    face payment. This could be used without using some sort of
    key/certificate verification service if being done between two
    humans who are the direct senders and receivers of the payment and
    are using hardware that they personally own (not necessarily the
    case of untrusted employees or public vulnerable machines).
    
    
    
    
    
      
        
      
    
    
    
    Did you not see my previous message about the size of the bitcoin:
    URI getting too big for NFC and QR codes? Do you not care about
    giving the payer the option of using multiple destination payment
    addresses? This is important for many reasons.
    
    
    
      
        
      
    
    
    So, are you saying first the payer should send an unsigned
    transaction for review, and then once the payee has agreed it's
    good, they can send an ACK message back and then wait for the signed
    version? I don't think this is a bad option to have. Many wallets
    simultaneously broadcast a signed transaction to their peers and and
    also back to the payee via https or bluetooth. So, you'd have to add
    another step to do the unsigned transaction review in order to avoid
    a transaction being accidentally broadcast that both parties don't
    like.
    
    
    
      
        
      
    
    
    Again, my comments above about issues with using bitcoin: URI for
    everything. Also, why do you want to bloat the blockchain with
    unnecessary refund transaction data?