Ja, grundsätzlich schon. Wenn Du
unit B aber nicht immer aufgenommen haben willst (weil diese z.B. einen Initialisierungsteil hat, der Speicher braucht), kannst Du die eine Funktion auch als Include-Datei in beide Units einbinden. Dann existiert die Funktion immer nur als eine Fassung, aber Du brauchst nicht UnitB aufzunehmen. Dass die Funktion dann für den Compiler evtl. 2 mal sichtbar ist, wenn Du doch mal beide Units aufnimmst, macht dann nichts, denn bei doppelten Definitionen wird immer nur die zuletzt gefundene Version genommen (die ja aber gleich ist, da immer nur einmal vorhanden).