This seems like a very good analogy to present when you come across non-technical people with pie-in-the-sky requests. They don't know how to go about building the features they dream of, and I have no idea how to go about answering any of the questions you list above.
If nothing else, we both realize that the programming isn't just trivial, and neither is the marketing.