I think a powerful feature that could be added to your application would be a concept of layer group.
This would simply be a way to group layers that can be rendered on the client as individual OpenLayer layers, that can be refreshed independently of each other.
Let me give you a situation where this would be useful, I work for a utility company, and in using your product I use the google maps as my base layer. Then I use my own layers to represent the poles and electric lines by putting them in the dynamic layer.
I then added my own custom javascript to refresh only the dynamic layers on the client, giving a better user experience, to show for example when a user opens a line and disconnects some customers.
However you guys only have one layer that is dynamic.
Now i want to have a layer for our vehicle positions but want to refresh them withoth refreshing the base layer or the layers with the poles or electric lines. So i you implemented a layer group that I knew would be a separate layer on the client I could refresh it independently and improve the perfomance as i would only be drawing some layers at a time, and not all the layers of my map.
You could extend this to include a layer that is implemented as web feature service layer on the client so for example to show vehicle positions the rendering would be done on the client, and a timer could be added in javascript to refresh the layer every minute. the screen would not blink and uisers would like the richness and you would offlload some of the work of the server to have to redraw all the dynamic layers.
You guys are really on a path to create one of the best .NET mapping apis out there, the inclusion of the openlayers javascript api and your excellent server side map rendering and spatial analysis control opens up a lot of possibilities. However I think you are missing some oppurtunities on the client side that could improve performance, and the smoothness of the client UI.
So just keep up the good work, can't wait to see your silverlight control.