The two major rendering engines have supported CSS3 for quite some time, which makes rounded corners as simple as:
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
Of course, this doesn't have any effect on IE6 or 7 (it works in IE8) or 8 so you need to implement the nasty stacked division with images for the corners, which doesn't fit your semantic requirement.
I'm not a fan of display-hacks that involve javascript or css-hacks - so I use CSS3 and check that the squared-off version in IE7 looks acceptable. I've been doing this for a while as IE never used to support PNG transparency either - which meant you couldn't nicely overlay a rounded corner image on a patterned background. IE8 is a big improvement, so the problem does start to go away - but I understand your desire to make it work on IE6 and above.
UPDATE: Various CSS3 bits and pieces that were originally planned to be included in IE8 were actually removed from the final release. border-radius was one of the victims.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…