I noticed that when I save a model, it needs to return the data of that model again. This is not documented anywhere (I couldn't find it) and it's unnecessary. If I send data back from the server, then update the model, if not, leave it like it is.
Now in Ext.data.Model, method save, it does:
record = operation.getRecords()[0]; //we need to make sure we've set the updated data here. Ideally this will be redundant once the ModelCache is in place                 
record.dirty = false;                  
Ext.callback(options.success, scope, [record, operation]); 

if i don't return the record's data, record is undefined, and record.data throws an exception, that is catched by some code (I couldn't find where).
On top of that, the documentation is very poor, you can't see anything in Model.save or in the proxy documentation about this behaviour.
I think it should be optional to send the data back, and if it's mandatory to return the data back, at least an error or exception should be thrown.