Yes, this is how Elixir Phoenix works. The caveat is that only returns exactly what needs to be changed, so it's a small diff.
It's not suitable to everything, but it works really well. I'm not advocating switching to it right now, but it's looking very promising.