Yeah no doubt that HTML is powerful, and very quick to do certain things.
In your example I would absolutely just build a table using events, and have done so many times.
I'd do it that way because I might want a dialogue box to appear on top when a user taps something. Maybe I want a gradient that is across the whole screen. Or, what I do most often, is I want to populate that table with sprite fonts that I use elsewhere in my project, and sprites I use elsewhere. These contents are built using a mix of hierarchies, templates, and containers, using C3-specific techniques that I've learned through years of practice. Maybe I just want a sparkly particle system to appear where the user taps. One of my current big projects uses an entirely world-space UI with all sorts of pretty effects. It's gorgeous, but it was a nightmare to put together.
I'm not a classic developer, so I'm put off by the idea of learning new languages, but I currently work full-time as a Construct dev. Every other dev in the team is amazed at the speed of this software, and appalled at the lack of UI support. I stand by Construct, and I'm probably as tired as you are of hearing about UI! 😂
I once used an adjustable wrench to knock in a nail because I had no hammer. It did the job, but I wish I had a hammer at the time.