Actually re-rendering the entire app on each change only works for the most trivial apps; in a real-world app, it's prohibitively costly in terms of performance.
Is this true? Slamming HTML into a DOM is pretty fast as far as I can tell.[1]
It seems to me the advantage of DOM diff/swapping is the preservation of non-DOM state (input focus, inner scroll state, etc.)
[1] - http://intercoolerjs.org