This seems to rebuild the entire view from scratch on every model update? Or is there some diffing magic that's not shown in the article?
This loses all non-persistent UI state such as scroll positions, half-entered text etc. etc.
Not really a workable architecture for a real app. React was invented because of this problem (how to make functional-style view building actually work...)