They're tessellating far more than they need to. This is in addition to the problems with shadows, which appears to a totally separate problem. Check this little enlargement of a screenshot I made today:

It's a little hard to see, but the weird "fuzziness" on those dots (which are caused by whatever bugs are present in the shadowmap code atm) ... is excess tessellation.
This is a perfectly-flat heightmap with ground deformation OFF, btw.
I've seen a number of other disturbing things:
1. Tessellation is incredibly inefficient. I'm seeing hundreds to thousands of triangles where I should see a few dozen at most, on tests with perfectly flat surfaces. I tested this because I'm trying to figure out how to wring enough performance from Spring to get really complex visuals on people's screens... and found that flat maps offer practically no real performance advantages over hilly ones. According to what I read about how that algorithm I talked about last week is supposed to work... that should not be happening. Instead, wide flat areas should always be very efficiently tesselated to a very low triangle count.
It's almost like the renderer is treating heightmap squares in isolation, instead of the entire heightmap that's within the view frustrum... or something else is majorly borked.
2. When the camera is near the center of the world, you see this, with wiremap on:

See the density of triangles near the bottom? I think it gets even smaller nearer and nearer the bottom, we just can't see them- my guess is that eventually the sub-divided squares are one texel in size.
I dunno what the circle is, anybody have any idea what we're seeing there?
3. Repeated tests have revealed that the CPU hit is not trivial, when you add in groundscars, because they're being inefficiently tessellated, CPU-side, then are being tessellated again by the vertex and fragment programs. We're talking loads of tens of thousands of triangles... for something that should be a quad, on a flat map, then tessellated only enough for the quite-large texels of the shadowmap.
I'll be the first to say, I don't know how to address this, or even have a (crappy) clue as to where to go- this is way outside my comfort zone with rendering systems. I wish I could, frankly, it's a pretty messed-up area, and I know jK and Kloot are both busy on things that are more important atm.
I saw various notes in the ground-drawing code that said that some of SJ's hackish stuff was still in there, and presumably hasn't been fixed. I'm guessing that there are real fundamental issues here, and that we should see this area as a serious optimization area worth some time spent. To put it into perspective... without any objects in the scene, at game start... all Widgets off... CPU hits for the map and wiremap on hit anywhere from 10% up to 20% in short bursts.
For a static, absolutely flat heightmap that will not be changing, that's ridiculous, imo. It's not the SMF format that's the problem, it's the fundamental drawing code.
In fact, I have a sneaking suspicion that if that part of Spring was fixed up, SM3 might start looking... practical.
The other thing that could (and IMO at least, should) get changed is the update frequency for re-tessellating the mesh. Currently it appears to operate once a frame. I'd have to vote that, unless there's a real need (explosion, Lua event), then it should wait no less than a SlowUpdate (although I'd offset it one frame, since it's a big CPU hit and there's so much going on then). It's simply not necessary, to update the mesh every frame- show the ugly version, if the camera jumps, then clean it up a half-second later at most.
Yeah, I know, it's not quite as smooth or pretty, but meh, it'd be a lot faster.
It is my (no-doubt somewhat ill-informed) opinion that addressing these issues could:
A. Speed up map rendering dramatically, immediately.
B. Make it easier to arrive at a very fast shader-based approach as a future game option. After all, the formula's practically the same- and it really appears that there's something fundamentally wrong, that won't get fixed like magic by just sending it to a shader. It'll offload it, sure, and that'll allow uber-systems to plow through map geometry, just like they're plowing through on pure CPU (I know whereof I speak, since I've been doing playtesting on two pretty modern machines, it's amazing what throwing enough CPU at the crunchy stuff can do for this engine

To reach even current-gen levels of beauty, this is a Rubicon we'll have to cross. I think that this needs to get solved first.
C. Make maps with true-flat spaces attractive for the same reasons they're attractive in commercial game engines- efficiency. Ok, and better gameplay... but that's not the main reason that so many RTS engines use a lot of true-flat terrain, and various chunks of incidental geometry using a system somewhat like World Builder to perform culling.
D. Make splatting approaches of various kinds (even "incidental" or procedurally-built) far more practical than they are now. After all, the real reason they're sucking is that they're putting out far too many triangles on the CPU side, so far as my testing shows.