I have been exploring this too. My impression is that ultimately it’s not feasible to update the entire model and directly use Polymer’s data-binding. It will just generate too many updates internally to the framework. As I’m sure you’ve seen, Polymer allows you to describe to the framework how you’re manipulating state (el.set(), el.push(), el.splice()), which leads to performant updates to the DOM, computed properties, observers, etc. It also provides low-level APIs to tune this (el.notifyPath(), el.notifySplices()). All this said, I haven’t been able to get immutable state to integrate seamlessly with Polymer data-binding. The home-assistant project has done the best job with it that I’ve seen, but I think there is a little more to be desired. My integration of Polymer and flux-ish architecture is called funk, which uses refluxjs under the hood, but the stores live right in Polymer-land and take full advantage of data-binding.
Curious to see where you go with this! It’s exciting that Polymer folks are starting to adopt flux-ish architecture– it’s much needed! And I quite enjoyed your post.