Это очень хороший признак того, что ваш код VCL изолирован от другого кода.
Архитектура n-Tier действительно имеет смысл, и, по-моему, подход полного RAD хорош для создания прототипов, но имеет ряд серьезных недостатков для создания поддерживаемых приложений с дополнительными функциями.
Стандартный способ использования Delphi XE2 - это использование только форм FireMonkey и пользовательского интерфейса. Поэтому кросс-компиляция будет легкой. Это действительно имеет смысл с точки зрения удобства: после того, как ваш код и формы FireMonkey установлены, вы можете развернуть их на нескольких платформах, просто путем перекомпиляции. И не забывайте, что Linux может стать целью в ближайшем будущем (DXScene был готов для Linux и Android). Использование конвертера форм может помочь вам получить код с использованием FireMonkey вместо VCL.
Если вам нужны только несколько простых форм для Mac OS X и вы ожидаете более сложного приложения для Windows (что может быть идеей, в зависимости от целей маркетинга), вы можете создать чистое «легкое» приложение FireMonkey. Но я не рекомендую использовать много условных определений. Создайте разнообразный проект с подходящей платформой FireMonkey. Затем поделитесь всеми вашими модулями, не относящимися к VCL, между проектом VCL и проектом FireMonkey. Вам не нужно условное определение для этого шаблона.