Safe? Да, он используется конструктором Windows Forms для вставки атрибутов, поэтому он является допустимым компонентом функциональности, хотя и не используется широко
Грязный? Да, немного. Если есть какой-то другой способ снять шкуру с кошки, я бы посмотрел на это так. Атрибуты должны представлять собой простые метаданные, используемые для обеспечения четкого способа определения определенных характеристик вашего кода. Используя динамические атрибуты, вы выходите за рамки обычного варианта использования.