Текущая частная реализация является частной для всего, что находится за пределами модуля, в котором она объявлена. Поэтому, если вы не хотите добавлять операторы строгого , вы не хотите изменять существующие модули, тогда вам нечего получить, кроме взлома любого существующего кода, который обращается к классу в том же модуле. Пока ваши существующие единицы не изменены, разница между строгим и не строгим частным является академической.
Если ваш аргумент в пользу строгого поведения заключается в том, чтобы использовать компилятор, чтобы помочь вам refactor код, который использует преимущества менее- приватного поведения, то добавьте строгий к одному классу за раз является хорошим инкрементным подходом, поэтому вы можете чаще переходить в компилируемое и тестируемое состояние. Полное изменение поведения при продаже потребует исправления каждого нарушения, прежде чем вы узнаете, сработало ли какое-либо из них.
Причина, по которой private ведет себя так же, как и в случае с friend в C ++, - позволяет определенным классам (или процедурному коду) получить доступ к private членам. VCL и RTL интенсивно используют это поведение, поэтому переключение компилятора или полное изменение нарушит весь этот код.
Реализация Delphi private является достаточно частной для всех практических целей, поскольку обычно вы контролируете модуль, в котором объявлен ваш класс. Если вы когда-либо объявляете только один класс на единицу , и никогда включите процессуальный код, тогда разница будет только академической.