Во-первых: сценарии Interop или когда необходимо указать расположение памяти
111-секундный: Когда данные являются почти тем же размером как ссылочный указатель так или иначе.
Потому что, если вы запустите обычную компиляцию, компоновщик может выполнить «умную компоновку» DCU и удалить код, который никогда не понадобится вашей программе. Но пакеты предварительно скомпилированы и содержат весь код, поэтому вы не можете умно связать их до меньшего размера.
Я думаю, вы предполагаете, что все файлы BPL связаны, когда вы создаете программа со встроенными BPL. Это не относится к делу. На заключительном этапе компиляции компилятор Delphi связывает все вместе. Здесь опускаются модули, которые находятся в BPL, но не вызываются прямо или косвенно вашей программой.
Таким образом, вы получаете гораздо меньший размер, только действительно необходимые модули находятся в окончательном exe.