Вроде как innerHTML у рута очищается. А это крайне не желательно делать в body. Там могут быть что то, помимо реакта. Скрипты, Метрики, контейнеры для модалок. В общем, лучше использовать отдельный контейнер, нежели чем после пытаться фиксить неожиданные баги).
И кстати, можно использовать не только div.main/root. Можно и кастомный html элемент юзать.
<react-root></react-root>
как пример.