Sometimes when you make mistakes, you have to promise to put them right, no matter how nervous that makes you.
However, when we do a new release - whether it's a new product or a point release to an existing one - our goal isn't to ship something that's useful to everyone we think might conceivably be interested. Instead, our goal is to ship something that's useful to a lot of people as early as we can manage to ship it.
Once you do that, you let customer feedback direct the later development efforts. That way, people get the app they actually want rather than the app we imagine they want.
The upside of that approach is that it appears to work well; we've been doing it the entire 10+ I've been here, and we'd be fools to complain about the success our products have had in that time. So if we're doing it wrong, we've been doing it wrong (and failing upwards, I guess) for a long time. ;-)
That said, I would love to do better. This approach is undeniably confusing for the folks whose expectations don't line up with ours, and it tends to produce forum threads like this one. I've spent a lot of time thinking about those factors, and short of giant pre-release blog posts along the lines of "Product X: here are all the things we aren't putting in it yet", I'm honestly not sure what to do about it.
Even if we did try something like that, I'm concerned it would do more harm (by dampening the spirits of folks who would otherwise be happy) than it would do to reduce any post-release confusion or disappointment.
(We avoid the "when do you think you will do <x>?" game as much as possible for similar reasons. It simply doesn't help that much.)
So, until we figure out something better, we'll do what we've always done. Ship products, keep making them better, and keep listening. Like we're doing now.