I think the name bot is misleading. It confuses people into thinking it’s an entity trying to mimic a human user, with which you’d have a chat that mimics one with a human.
I think we’d be better of talking about messaging apps or conversational apps, of which bots would be a subset using NLP to power conversation.
You make great points about the quality of the service itself. Conversational app developers can use relatively rigid command syntax at the beginning. Users adapt, and NLP can come later, to fluidify the interaction. A number of great slack apps work like that. On the other end of the scale, SMS or Messenger app are sometimes powered by actual humans. NLP can come later, to automatize.
In any case, there are only a few instances where NLP / conversation is the main value, compared to the actual service. There is too much buzz around this, I feel.
I gave a talk yesterday on this topic, you may be interested :
http://fr.slideshare.net/MatthieuVaragnat/conversational-interfaces