osfфайл описывает интерфейсы (по аналогии с заголовочными файлами в Си), аocfфайл описывает их реализации в машинных кодах. Очень часто файл реализации меняется, а файл интерфейсов при этом остаётся неизменным. Есть модули, которые не содержат реализацию вовсе, например в подсистемеWin. Там только интерфейсы.
Компилятор при сборке новых модулей интенсивно использует только символьные файлыosfимпортированных модулей, а файлы реализацийocfне использует.