We've never announced a feature unless we know the day it will deploy. That way we meet or exceed customer expectations 100% of the time. Sure, we might have an idea of where the app is headed in three years, but we don't share it with customers because it will change.
When we say we're going to do something and change our mind later I think it makes the company look bad, even if it's the right decision.
We're at a point where my company is trying to get out of client work 100%. To me, selling features of a product to a company and telling them I will deliver in 18-36 months puts me right back in the client business. No thanks.