Прежде всего, помните, что «работа с форматированным текстом» - это не то, что должно делать ваше приложение. Предполагается, что ваше приложение позволяет пользователю выполнять определенную задачу, а код для выполнения этой задачи - логика вашего домена. Если часть задачи, которую должна выполнить ваша программа, включает в себя работу с форматированным текстом, то вы можете делегировать эту ее часть компоненту форматированного текста. Как вы уже упоминали, сложность заключается в интерфейсе между этими библиотеками и доменной логикой.
Способ, которым логика домена Delphi и элементы управления Delphi UI взаимодействуют друг с другом, в основном через обработчики событий. Но это не значит, что вам нужно поместить свою доменную логику в сами обработчики событий. Вместо этого попробуйте написать модули, содержащие код для специфичных для домена задач, которые необходимо выполнить, и обработчики событий будут вызывать эти модули.
Другими словами, не пишите классы, чтобы изобретать велосипед и делать то, что другие уже сделали для вас. Вы правы, это было бы нелогично. Но напишите специфичные для приложения части, которые элементы управления и библиотеки, которые вы используете , не предоставили в качестве собственных отдельных классов в своих отдельных модулях, и подключите их через обработчики событий и открытые методы или свойства в ваших формах и вы получите достойное разделение интересов.