Well after you upload is converted to scx anyway so why not code directly in it . You dont need to worry about xml settings and because youa re using ascx you can also directly code in it to include tabid or tabname with request.querystring to give a bit more functionality to your skin
Ahhhh..hardcode tabid's into the skins??? Ouchie! What happens when you delete a tab and recreate it? gots to go back into the skin again and modify it...the point of a skin, from what I understand, is to have reusability. As for ascx vs html to skin.....Here is why I would start with html/xml.
Lets say, you create a skin, and you take your time to create all kinds of css classes for your menu system, that you like better than the ones normally defaulted....now you just save them in the XML file, and viola, use it in all your skins. I'm pretty sure my first skin is not going to be my last :->
Try and write out all the settings for DNNMenuNavigationProvider every time you want to write a skin..having to recreate all your css classes...OR cut and paste it in from an old ascx skin that is the "latest" incarnation of the css classes you wanted, where is that burried again...or...viola, just grab my xml file and parse it...and now I'm consistant with all my skins.
Personally, I would never hard code a value into a skin when the expected(hard coded value) has a chance of being changed intentionally or not....bugs start eating at your website.
Tables Vs Divs. You can make it valid as you want in pure CSS and it's still gunna wierd out in IE. Tables seem to keep things pretty neat and orderly for now. Check out the new extropyblahblah skin, it gets all jacked up.
And thos are my 2 cents back :->