I haven't took the time to look how react exactly work yet, but it seems the notion of virtual dom is really comparable to GWT initial component model. Even if the initial motivation is not the same, in both models there's a separation between the DOM and the components tree you manipulate.
You do not /have/ to use the GWT serialization lib which comes with RPC. You can use JSON with GWT. It's actually very trendy and some new librairies simplify this.
But the combination GWT + node is surprising...
One of main advantages of GWT is you use the same language client-side and server-side. It's not at all "a swing portage" as it more or less used to be at the very beginning, but still, GWT comes from the Java world. If you want a strong-typed langage for your client code (big client application, huge dev team, or whatever), GWT is really the most mature solution today.
So :
* if you are ok with JS, and about making your backend in JS (I can't...), just use JS everywhere...
* if you want GWT, but a "reactive backend" like node, there are lots of good reactive backend-frameworks in the Java ecosystem
Not that it's strictly relevant but people (including me before) often assume GWT is widely adopted at Google.
Recently I picked React, but seeing the recent improvements in GWT I realise that GWT has improved leaps and bounds in the last two years and does somne things better than react