Я бы рискнул предположить, что используемое вами двоичное совместимое местоположение - это сам исполняемый файл, а не сохраненная версия bincompat.
При изменении любого открытого com-интерфейса в коде двоичная совместимость может быть нарушена (вы можете обойтись без расширенных интерфейсов, но не изменив существующие / типы), что помешало сборке.
Если установить его для сборки без совместимости, проверки отбрасываются, а исполняемый файл создается.
Затем вы изменили его обратно на бинарный, и именно здесь / почему я думаю, что вы указываете бинарную версию компатации на сам сборочный exe-файл, а не на отдельную копию - так что исполняемый файл автоматически был совместим с самим собой и позволял его строить.