Well, after more investigation there is a side effect to this solution. In .NET 2.0/3.5 the menu control always rendered this style block in the head:
<style type="text/css">
.ctl01_SiteMenu1_ctl00_0 { background-color:white;visibility:hidden;display:none;position:absolute;left:0px;top:0px; }
.ctl01_SiteMenu1_ctl00_1 { text-decoration:none; }
.ctl01_SiteMenu1_ctl00_2 { }
.ctl01_rightContent_ctl00_ChildPageMenu1_SiteMap2_0 { text-decoration:none; }
</style>
in .NET 4 the menu has a new property that allows you to turn off this style block by setting IncludeStyleBlock="false", but when you set RenderingMode to Table it ignores that and adds the style block. This may be ok in some skins, but rather than hard code it to do that, I implemented a custom property on mojoMenu so you can set it from theme.skin file like this:
<portal:mojoMenu runat="server" SkinID="SiteMenu"
UseNet35Mode="true"
/>
and that will set it to use Table rendering. You could just set the RenderMode from theme.skin but if you do that then the skin would throw an error under .NET 3.5, so I added the custom property which will be used only in .NET 4 but exists no matter the framework.
This is in the source code repository now and will be in the new release coming tomorrow.
So it seems that with Menu control we have a choice between disabling the javascript or disabling the style block but we cannot do both unfortunately. I will update the article with this information as soon as I get a chance.
Best,
Joe