I also think fully autonomous vehicles are a long way off. Modern computers still have a difficult time of identifying an email as spam, something that a human of average intelligence can determine at a glance with nearly 100% certainty.
The border between spam and not spam is not black and white, what you might consider spam someone else might consider a treat. So identifying spam is a very different problem, reading and understanding text requires a semantic understanding of human life on whole different level, and neither natural language processing nor AI is good enough for that yet. Even so, using surprisingly simple methods, I find that Thunderbird is pretty effective at classifying spam, as are gmail.
They work on carefully mapped urban courses but the real world is full of edge cases.
Does Phoenix count as the real world?
"Waymo One riders are currently able to take rides within parts of the Phoenix metropolitan area, including Chandler, Tempe, Mesa and Gilbert. Our service operates around the clock, seven days a week. Riders can travel anywhere in our territory day and night."
Every day I see debris in the road, spilled paint, sand, worn off markings and all manner of other things that will confuse the heck out of an autonomous system.
Last year, Waymo's prototypes drove the equivalent of a year (for an average american) between disengagements in California. I'm convinced none of the things you mentioned would be a problem for their cars. Undoubtedly there are still some unpredictable things that will cause issues, but It's really hard to come up with an example since if we could they wouldn't be unpredictable. What matters is that the problems are rare enough that they are at an acceptable level. Perfection is impossible, also for human drivers.
That's before you even consider all the impatient/malicious people who will do things like not allow a vehicle to merge.
People are nuts, and maybe malicious people will be a problem, but there will be real people in self driving cars as well, and most people aren't sociopaths.
You have to be pretty aggressive in a lot of areas to merge onto a highway, I can picture it now, this poor self driving car inching timidly forward waiting for a gap in traffic until it runs out of lane and helplessly stops.
Actually that kind of thing has been mentioned before. Similar problems arise in many situations, e.g. when making a turn in an intersection you can't just timidly sit and wait since people will never let you drive, you have to start driving and signal that you are going before others let you pass. But they have solved such problems before (e.g. with intersections) so even if merging onto a highway is problematic (I don't know if it actually is, they wouldn't tell us if it was) I think we can expect it to be solved relatively soon.
There's another problem though, sometimes driving in the real world requires you to break the law. I.e. the law might dictate that you drive very timidly but in practice people routinely break it or they wouldn't get anywhere. What should the programmer do in that case? Program the cars to break the law routinely?
Something they have admitted is very difficult is figuring out the best place to stop to pick up/drop of passengers. They can't just stop and block all traffic on a crowded parking lot for example, or other drivers would become pretty annoyed.