"there is a lot of pain out there".

priceless
It's a nice idea to be able to refactor an application from a clients point of view into multiple tiers and platforms.
Is there some set of shared concepts for programming against both Silverlight and the browser? I'm not sure it makes that much sense, but that would make it seamless for code to run in either environment without needing to decide which. On the other hand, for it to make sense, it would have to offer some benefit in terms of flexible controls and effects that are not easily done in the pure browser environment alone.
One possible example of that may be the JS/DOM 3D engine. On the other hand, I can't believe anything non-trivial can be animated - generated perhaps, although it could heavily influence scrolling and reflow speed.
It's cool though.
There are also several 3D engines for Flash. I've toyed with one myself, but it used to be that they were quite slow and not really usable for anything non trivial. The faster runtime in Flash 9 may be improving that but probably the software rendering is still the bottleneck. For static rendering, it can be quite useful, though. Flash also has the ability to render to bitmaps, so you can do raytracing if you want to. That is, you *could*, but at a framerate not worth mentioning.
Can hardware accellerated 3D be embedded in the browser. If not, then why not? What are the challenges?
There is also the potential to have shared concepts for Silverlight and Flash. Obviously, they're very similar and have similar goals. But the question becomes: is it worth the effort. If you're already "going plugin", you might as well "go Silverlight" and forget Flash altogether.