Атрибуты существуют в типах, а не в экземплярах объекта, поэтому время жизни экземпляра атрибута не связано с временем жизни экземпляра объекта.
Интенсивное использование атрибутов в коде может стать узким местом, если вы неоднократно используете отражение для доступа к одним и тем же атрибутам в интенсивно используемом коде. Это легко исправить с помощью кэширования. Как именно и когда вы будете кэшировать, будет зависеть от вашего приложения и среды.
В общем, атрибуты предоставляют отличное решение для общего сценария программирования и при правильном использовании не вызовут узкое место в памяти или производительности.