I agree that better client software will inevitably emerge with broader adoption.
Concerning the amount of time it takes for a transaction to confirm, I think that you have to distinguish different scenarios in which Bitcoin is taking the place of the previous solution:
- Payment in a store:
- 0-confirmation is acceptable for tiny payments like getting a sandwich/coffee.
- Shops offering bigger purchases, say a jewellery shop or car dealership would probably use a payment processor that assumes the double-spend risk or wait for the first confirmation, not a big issue as there is more stuff to talk about anyway.
- Webshopping (some examples)
- To read an article for five cents or to pay to watch a movie ~> 0-confirmation is not an issue
- Ordering food: Delivery will probably take longer than confirmation time anyway, so they will be sure you paid by the time they hand over the food.
- Ordering physical goods: It's asynchronous anyway, a 10 minute confirmation time is irrelevant. So, you'll receive a confirmation of your order after ten minutes instead of immediately.
Then one should also mention other applications like (international) wire transfers, where 10 minutes for the first confirmation is magnitudes faster than current systems.
Altogether, the only point where I see any friction at all is "big purchases in a physical store", but even for most of those I would assess the friction to be negligible by just shifting the payment a bit ahead in the whole process, or there being a contract which could be used to follow-up on a failed payment.