We can counteract a double-spending attack in Nxt by using special accounts. A special account has certain limits that don't let to create transactions for more than (for example) 1/10th of the balance in total within a 24 hour timeframe. The network will simply ignore transactions and blocks that violate this rule.
A merchant (or a vending machine) can accept payments from special accounts without waiting for confirmations. The only thing should be done is checking that a received transaction doesn't violate the rule.
Surely all you are doing is reducing the risk of double spends to 1/10th of the account value, you aren't actually removing the risk of one happening, just the benefit if it does?