I would expect that in future mobile platforms will be able to run HTML5 and CSS3 more natively improving the user experience, making frameworks such as xamarin redundant.
FirefoxOS is likely to be adopted by manufacturers of cheap smartphones. Will Apple and Microsoft adopt an open HTML5-standards based OS on their iPhone and Windows Phone platforms? Never! If they did, it would remove their competitive advantage!
There will always be a huge amount of competition at the high-end of smartphones, and this level of competition is not compatible with the standards-based approach.
Personally I think it is worth learning something like Xamarin (or Titanium, Marmalade, MoSync), and HTML5 development!
For 'cheap' applications that do not need a cutting edge user experience, HTML5 will work just fine for cross-platform development.
For 'top notch' applications where a fantastic and slick user experience is required, I would go for Xamarin.
Definitely interested in what you come up with using D3. It is an awesome framework that I haven't had the chance to play with. Been using Node.js a bit recently, mostly for scripting - nothing very exciting!