If in OpenGL the normal doesn't match the vertex order (cw/ccw), then the light position is inverted (e.g. if it was (100, 0, 0), it becomes (-100, 0, 0) effectively and faces appear to be lit from the left side instead of right). So if the modelview transform has an uneven number of negative scales, then the vertex order flips, and thus the light position inverts.
1b2aeb2d-38c0-4b1c-9ac1-659b7ef6e00c|0|.0
During the port of our Cadlib DWG DXF .NET library to Silverlight 5 we ran into a problem while implementing the 3D rendering. There was no support for PrimitiveType.PointList unfortunately. After some help from Peter Kuhn we managed to draw points using triangles (follow the discussion here). This is apparently the way to do it nowadays as DirectX 10/11 won't support points anymore (alas!). So each point is represented by 2 small triangles. Some vertex shader magic is needed to make this happen. I won't go into too much detail here, to see how it's done just download the demo application that draws half a million points.
Each point will need 4 vertices, and each vertex takes up 20 bytes of space, so 80 bytes per point are needed. In the future with shader model 4 this might be improved upon by using geometry shaders, but these are not yet supported as Silverlight 5 supports shader model 2 at the moment.

96a7992d-7616-4e25-99cf-8fa7a821814b|1|5.0