One of the things I kind of miss about the table based layouts of yesteryear was it seemed to be a lot easier to make sites that looked good in terminal/text based web browsers. The modern idea of doing all of your actual layout in CSS doesn't degrade as well for text based browsers.
Here's a challenge for you frontend hackers out there: show me a now standard <ul> based horizontal nav-bar... that also renders horizontally in w3m and lynx.
Why does it have to render horizontally? I think the goal is that the text-based layout is just a simple outline, and CSS is used to get a spatial layout. It sounds like you want a little of both worlds. You're right tables can be hacked to do that, but you're going against the grain of the technology, and I'd ask what you hope to gain?
I think many "frontend hackers" spend their time focused on what can be done and not enough on what should be done. This is a side-effect of our hyperspecialization culture which discourages designers and developers pushing back on each other, out of fear of stepping on each others' expertise. But I think that fear prevents the kind of real collaboration that's required to make a great UI.
I've always felt a little uncomfortable using <ul> for a horizontal nav bar (although I'm aware that is a common usage). <ul> is a block level element and so is not semantically correct for a horizontal set of elements.
This just happens to be the default style. At its core, <ul> is an unordered list. Whether you happen to arrange the items horizontally, vertically, or any other way, is just presentation. Which is precisely why CSS is separate from HTML.
Here's a challenge for you frontend hackers out there: show me a now standard <ul> based horizontal nav-bar... that also renders horizontally in w3m and lynx.