вдруг люди придумали что-то более продуктивное?
Так а что может быть продуктивного в IE8?
MutationObserver там не поддерживается, поэтому остаётся только
setInterval().
Единственное, что вы можете сделать в плане оптимизации: создать свои addClass()/removeClass(), использовать только их и внутри обновлять коллекцию элементов.
Ну или заманкипатчить classList (но сначала его
заполифилить) с той же целью.
Но этот подход несёт определённые риски, это, надеюсь, очевидно.