Это новый дизайн Вконтакте, я делаю свой CSS к нему. Хотел сделать несколько уже колонки, но все уперлось в то, что они сделали все изображения так, как я описал в вопросе: background, пустой div и скриптом выставление его размера.
Так дело в том, что div пустой, у него изначально нулевой размер. Скрипт берет из базы размер изобрадения и задает по нему размер div. А изображение и так cover.