ну либо ты не знаешь что такое инкапсуляция либо я не знаю что на это ответить
Ладно, раскрою свою точку зрения. Компонент меняется снаружи по месту и врапится другим компонентом. сам компонент "в себя" ничего не пропускает. это хак - да, но при этом сам компонент не имеет никаких "дыр", через которые ему "официально" может прийти что угодно. используя className мы как бы официально даем возможность владельцу компонента (родительскому компоненту) модицифировать компонент как ему захочется. В случае с этим хаком, владелец компонента сам несет ответственность за любые колизии ,которые учудил.