they have deadlines which should give them an estimated release date. Apparently they don't feel comfortable with meeting the deadlines so they can't give a stable release date yet.
"Our jobs as programmers is to invent something that has never been done before, and put a estimate on how much resources and time it will take."
We have deadlines all the time, and we are not always able to keep them. Crap happens, people get sick, things blow up etc. Which is why we never tell anyone a date on when a project is going to be complete until were damn sure it's done and ready to deploy. It makes zero sense to tell our internal customers even a rough estimate because they like everyone on this forum will freak the hell out the second that date is not held to. As far as they are concerned the voice of God told them that was the date and it's unthinkable that we couldn't hold to it for some reason.
People can't act like adults when things change so it's much wiser to just not tell them anything until you're 100% sure of it.
edit: When our internal customers call asking for an ETA or a status update on a project or a fix we give them pretty much the same answers Blizzard gives us. Soon, when it's done, will let you know when we have a solid date etc.
Engineering is the same way. It is ALWAYS a bad to provide people with timelines unless they are required or it is understood that the timeline may very well vary. In this case, there is no reason to give a release date until they are absolutely ready to do so. Of course, eventually you get to a point where you NEED to finish the project, that is the other case when the release dates are announced and programmers start to make compromises (e.g. omitting stuff and adding in patches). Blizzard, because of their past success, really doesn't need to do this unless there is a horribly long delay (like DNF). In programming even more so than engineering, timelines are very hard to estimate and stick to. You may have some very productive week, then the next week have to rewrite half your code because you realize it won't do what you need it to. It's really to hard to say how long things will take, and can often actually slow things down if too many deadlines are set because things stop being done properly.
They definitely have internal deadlines, but I assume they change all the time. The public wouldn't be happy with constant changing release dates. I'd assume they have a target release date at this point, but it's probably still pending on a few key internal deadlines. Once they know for sure, they will let us know. I don't think they gain from not setting a release date which usually builds anticipation, unless the date is very far away.