Вы всегда должны предпочитать интерфейсы, если это невозможно из-за ограничений VCL. Я подозреваю, что если бы интерфейсы были доступны в Delphi 1.0, VCL был бы совсем другим.
Одно незначительное соображение - следить за референтными циклами. Если A содержит интерфейс с B, а B содержит интерфейс с A, они оба будут жить вечно.