If I accept a transaction with zero confirmation and allow people to get what they are purchasing, then can they revert or bypass that spent in a later stage or the unconfrmed transactions will always be confirmed at some point of time ?
You may want to read these discussions here, plus a ton more:
https://bitcointalk.org/index.php?topic=359934.0https://bitcointalk.org/index.php?topic=159994.0https://bitcointalk.org/index.php?topic=208167.0The summary is that zero confirm transactions are perfectly fine for small value items because the cost to do a double spend is not worth it as long as you verify that the transaction has appeared on the network and you've paid a fee. The other relevant quotation is: "If credit cards take 180 days to be confirmed how will you buy coffee at Starbucks?"
Don't believe the FUD about zero confirmation transactions for small value items, a double spend is less likely than someone just walking out on the bill for small items. Just like credit cards, if someone were to successfully scam you - or dispute the transaction a month later - you'd be out the money and it is a cost of business.
For larger purchases, you want confirmations. E.g. buying something for 5000 BTC, I'd want a lot of confirmations.