Ну, гибкость приходит на ум. Рассмотрим следующие сценарии, которые были бы невозможны (или, по крайней мере, трудны) в вашем контроле:
Вы хотите использовать несколько или разные способы открытия файла, но это зависит от вашего приложения.
Вы хотите использовать текстовое поле, но ограничить функциональность - например, поиск / замена не разрешены.
Вы хотите изменить поведение любого из них в одном приложении, но не в другом. Например, в приложении A вы хотите добавить дополнительную косую черту в конец текста, но в приложении B вы хотите добавить собственное имя папки.
В общем, я бы рассмотрел что-то более общее. Что-то вроде текстового поля имеет определенную цель; усиление этой цели - это хорошо, но вы выходите за рамки этого. Вы берете логику, которая по праву принадлежит приложению, и наделяете ее определенным контролем. Это ограничивает возможности управления несколькими приложениями.
Конечно, если вы пишете элемент управления специально для одного и только одного приложения, вам не нужно беспокоиться об этих вещах. Но я все равно считаю это плохой практикой.