It seems nobody wants to answer your actual question about why it does what it does. So here goes.

There's something very strange going on there. It's a weird one, that's for sure. If you do not set a height on the map, then it's vertical-align: top.

It appears that googles javascript is mucking up something. It only seems to happen in Internet explorer.

The really fascinating bit is if you dig into the html with the IE developer tools and turn the height off on the map, then it reverts back to top, and if you turn it back on, it stays at top. This tells me it's something in the javascript that is somehow messing up the layout of that field.

In other words, it's a bug. You can work around it by using the methods others mention.