This is another thing we considered doing but after some reviews internally and with Kari Hautamäki from Qt organization it was decided that using traditional MVC pattern and keeping the data (model) and operations separate would be better approach.

This is of course tied to our decision to expose operation classes. Now there's only one way to do for example object queries: you create query operation and execute it. If you want results in model, you give model to operation. If not, you can get results from operation after it has finished. With other approach you would either create model and ask it to fetch objects or call Client::query(...). I guess both of these would then internally use some kind of operation class.