Criticizing a language that just got wasm support last week for not having mature high level solutions yet is a bit ridiculous.
Using createElement is leaving the DOM manipulation to the C++ the browsers are written in.
Using HTML is leaving the DOM manipulation to the C++ the browsers are written in.
Using your framework (react/angular/etc) is leaving the part of the framework thats using innerHTML/createElement to leave the DOM manipulation to the C++ the browsers are written in.
Whichever path you take, the browser must do some DOM manipulation to render anything.. because that is what browsers are built to do.