If sales & marketing waited for when developers wanted to release something, think of how slow tech and industry would move. That's not a swipe at developers, but their mentality is very different. Sales & marketing bring in hard dollars, which developers benefit from, and when they set a date, it typically reflects a specific reason and strategy rather than just being arbitrary for the sake of it. The date more often is keyed as a way to maximize a number of factors, but chiefly awareness and profitability.
Very good point, a company has to have cash flow. Also design efforts are expensive, and revenue needs to come in to fund that NRE. On top of that, some engineers really have little concept that the money has to come from somewhere, and you can't twiddle a design forever. Eventually you have to man up and sell the design.
OTOH I have seen quite a few sales folks that have little idea how engineering a product works, and in some cases go out of their way to be ignorant of the process, but will then assign an arbitrary date for completion that is forced on the engineers. And they get angry at the laughter that comes from the engineers when this is done.
In small companies, it's always a balance between resources\customer expectations\cash flow\and time. Often there are compromises that have to be made, and some of these criteria can be immobile.