Bei BPLs wird alles einkompiliert (gelinkt), was im initialion steht.
und die Units sollten irgendwo wenigstens in einem USES (ich nehme die
DPR, meine MainUnit oder eine gesonderte Import-
PAS dafür) eingebunden sein.
Bei einer EXE kann der Kompiler dagegen den Code ganzer Units beim Linken rauswerfen, wenn er nirgendwo verwendet wird.
Also solltest du die gewünschten Klassen mindestens im Initialization der
Unit aufrufen, aber ob der Compilier dann ungenutzte Felder/Methoden dieser Klassen entsorgt, das ist eine Andere Sache ... ich würde sie mindestens Published deklaieren, wenn sie via
RTTI verwendet werden sollen.