I think this is where I'm leaning... something like a distinct ViewModel layer containing my "client-safe" classes (almost the same as my DAL POCOs but with actual List<ViewModelPoco>, sans id's or other private sensitive info) and manually build up the state of my complex ViewModel step-by-step in each ViewModelPoco class constructor, by selecting out the "children" FK List<ViewModelPoco>. I know there are libraries like valueinjector to assist in merging the POCO values onto the ViewModelPoco values.
I've been reading up on angular.js and that framework promises 2-way databinding on complex JSON. I think the amount of data transmitted would be offset by the fact I'll be dealing with a relatively "fat" client. A lot of multi-step stuff would be happening only in the browser, then submitting everything at the end in one post. (I know this is not REST).