vertical-align нужен для выравнивания элементов, порожденных строчным элементом. для надиндекса, подиндекса и прочей такой фигни (кстати значения center у этого свойства нет; есть значение middle).

я не знаю ответа
я не знаю как расположить строчный или блочный элемент точно по центру блочного контейнера, если размеры контейнера, хотябы относительные, заранее неизвестны.

пусть придет кто-нить умный и скажет.

зы: если Вам срочно, то используйте таблицу (div {display: table;} и т. д.)