Overdraw typically results in a higher performance hit than vertex counts. In addition, over long distance and especially if running the game in 16-bit mode, z-fighting artifacts can appear. For this reason, your option A is generally the better bet.
With your lava, definitely NOT B, your example given is full of T-junctions and will result in a LOT of unnecessary polygons. Mitre edges to reduce T-juncs, use LavaCaulk shader on surfaces between lava brushes, and that will be the best solution. If in a pinch, solution A will work but you face the same overdraw issue as your first example. If the lava shader emits light, you could end up with some weird lighting artifacts and that would be the big deal breaker.
Curved stairs with a bevel, I guess there's no real "clean" solution to something like this unless you rebuild the curve surface with very careful use of brushes and phong shade the curved side, or go with a model, but that's a hell of a lot of work. I would clip those brushes relatively close to the curve bevel to minimize overdraw and call it a day. Make sure unseen sides are caulked.
[size=85][url=http://gtkradiant.com]GtkRadiant[/url] | [url=http://q3map2.robotrenegade.com]Q3Map2[/url] | [url=http://q3map2.robotrenegade.com/docs/shader_manual/]Shader Manual[/url][/size]