Единственный недостаток, который я вижу, это стоимость включения атрибутов в сборку. Они имеют очень небольшое влияние на производительность, если они не используются.
Я бы сказал, что нет, но это увеличивает размер .DLL и немного расширяет RTTI в сборке, что, особенно если вы перемещаете класс за границу блока чтения, может замедлить загрузку сборки (вызывая дополнительную пару блоки для чтения, которые не были бы в противном случае). Однако эти различия обычно заметны только при тестировании при холодном запуске.