I've been toying with per-pixel lighting (see my Sun shader thread), but found that the normals generated by the tesselator are quite low resolution. So I implemented a normal map layer that calculates the normals from an elevation model.
It pulls the elevation data directly from the ElevationModel, generates a normal map for each elevation tile, and passes the normal map as a texture in a TiledImageLayer to a shader, which calculates per-pixel lighting and shading. The results are quite encouraging (see screenshots).
The exaggeration in the shader can be changed in realtime, and so could the elevation colors (by editing the fragment shader to accept different color gradients as uniforms).
I'm not sure if something like this would be useful as part of the SDK, as it's pretty specialized, but it may help some people.
I'd really love to see multitexturing make it's way into the SDK. Then we could pass an image texture (eg Blue Marble or Landsat) AND a normal map to the shader as different texture units, and then do beautiful per-pixel lighting using the standard texture layers.
Anyway, feel free to use and extend this.