I found that there are many frameworks that will check the duplicate class name before adding the new class name on the element which I think will slow down the performance.
Are there any problems when the element has a duplicate class name?
It will also apply the CSS class without conflict while the duplicate class name is in use.
<div class="aa bb cc aa"></div>
Is it OK to add a class name simply just like elem.className += ' ' + 'aa ee'
, even if the element has a duplicate class name?
There is nothing "wrong" with having a duplicate class name, it's just redundant. There's probably a small performance impact, but that'll only really make much difference if you have a lot of duplication.
Also, preventing duplicates just helps to keep things tidy.