The technique described in my previous post will work for Silverlight solutions that generate XAML on the server side as well as solutions that have multiple static XAML files that are composited at runtime:

<div id="SLHost">

    <asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>

<!-- XAML that is generated by the server: -->

    <asp:Xml ID="XHTML" runat="server" DocumentSource="Xaml.aspx?id=page1" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>

<!-- XAML that is in many parts but composited at runtime: -->

    <asp:Xml ID="XHTML" runat="server" DocumentSource="details.xaml" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>

    <asp:Xml ID="XHTML" runat="server" DocumentSource="about.xaml" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>

    <script type="text/javascript">

        createSilverlight();

    </script>

</div>

But there are circumstance where you would want to have a SEO-friendly HTML that is more specific to your Silverlight application.  My colleague Nikhil Kolthari, wrote in his blog about other techniques for SEO in Silverlight where the application server would write out an alternative HTML version that is specific to his slide show application.