О том, что указатель на таблицу хранится в экземпляре не знал.
А где ему храниться, интересно? Таблица виртуальных функций — это, в сущности, runtime-тип объекта, который просто необходимо знать для реализации полиморфизма.
Ну а так есть еще одна возможность: у объектов в debug сборках от майкрософтовского компилятора бывают отладочные поля (и поэтому debug и release сборки бинарно несовместимы... фанаты *nix хохочут и показывают языки, я так полагаю).
И да, не надо ручками лезть в выравнивание. Вы выиграете пять килобайт места, а проиграете тридцать процентов процессорных тактов — а если, не дай бог, ваш код попытаются запустить на ARM'е, он просто вылетит с misaligned access.