Giving a demonstration of a possible product or feature can be a great way to get feedback and check if development is on the right track. Unfortunately stakeholders and customers don't always understand that a demo can be very far from a finished product.
A discussion of this phenomenon can be found here on Hacker News.
Personally I can't recall having had a lot of issues with this when the customer is inside my own (technical) organisation. It did get me thinking. It is important to tell our outward-facing colleagues that based on this demo we cannot make any promises to anyone outside the organisation. Unfortunately a generic statement like that may not be taken serious, because it looks like standard boilerplate. Perhaps an analogy to the physical world might help? "What we are showing today is similar to an architect's 3D model of a house. We want to show the 3D model to get feedback. No work has been done on the actual house, and it might take a long time to build." This type of analogy may seem silly, I understand that. But I would rather be safe than be sorry.
The situation gets more difficult when it comes to external customers. They may not be familiar with how long it can take to fully develop a feature or product, and get it ready for launching. They might think we have more people working on the project than we actually have. In our enthusiasm to show what we are working on we might end up turning the customer against us. It will look like the project is not working out if there are no regular updates after a demo. Enthusiasm will go down over time even if there are regular updates.
I think there should only be a project demonstration if we can give ourselves a hard deadline that we will make no matter what happens. That means the project needs to be at a certain stage of maturity before we demo it. It also means that we need to be able to add more people, or the right experienced people, when the project has setbacks. We need to be certain we actually want to do the project, and that we are able to. Once we have demonstrated the future product to customers, it is bad form to cancel it.