Use appcache and you have speed without an end:
Yep, as long as your platform is designed for it (and the benefits are for repeat viewers). It’s particularly beneficial for mobile.
Don’t just turn it on without knowing what you are doing though. Just like with caching your base html, if you turn on app cache, some set of your users will have the base page cached and you won’t be able to fix it from the server (not a problem if your app expects it but dangerous if it doesn’t).
Yes dynamically parts of content that changed on a page with reloading the page (PHP Style) must be loaded with js → ajax.
And Appcache is not only good for mobile connection via smartphone or tabs, it is a big jump for desktop users too.
And - a difference to CDN - you can serve content that aimed to the user browsers.
If you look at this result http://www.webpagetest.org/result/110719_S5_134V7/
of a german hosted domain with a demo of a picasa (and very big pictures), you can see the advantages very well.
And - to test and see the speed of dynamically content use instantsuche (instant search) or use the page http://powercms.org/?334
and use PLZSuche and type some chars of a german town like berlin or so.
Appcache is wonderfull and use it like a CDN an not as an offline system.