He also implies in his webinar that all objects should be immutable. This idea sounds crazy to me, he is actually proposing to pass a new object every time we want to mutate it.
I am a huge fan of immutability. Yes it does mean building a new structure when mutating the data but this is not as bad/costly as you might think given the other benefits you gain.
Take the new C# compiler Roslyn. The old compiler was written in C++ while Roslyn is C# with everything immutable. Conventional thinking would be that C++ would be faster than a .NET language but even with the object churn the new compiler is far far faster.
Immutability is about getting your object structure correct, your structures are more like records from F# instead of more normal OO objects. If an object is immutable you never need to clone it as you can just reference it also there are no thread based locking issues issues ever etc. When you rebuild the structure you can reuse any referenced objects so you are only rebuilding what has changed if your design is right. There are a raft of immutable collections to ease working with collections of data, just updating the minimum of data.
If you also pick up concepts like lenses from Haskell the update of nested data is also very easy as it simulates get/set properties rebuilding all the object graph that needs it.
Languages such as Haskell are actually constructed around immutable state, you require massive hoop jumping to allow mutation.