Hi @Julien_Curro, sorry for the late response. There is a lot here to unpack and I must have got distracted 
Unfortunately no, if you need to do this, then I would not use default values for this:
const id = new BSON.UUID();
realm.create('Item', { _id: id, rowId: id });
No, once again, if you are trying to do something more complex for default values, then this would best be done outside of the model.
One could register a listener to update this on change, but this could result in an infinite loop if not careful.
But in the end, we have no equivalent for these methods. You will have to do this manually.
That should work, but you should make the following changes:
const aObjects = realm.objects(A);
aObjects[0].method();
Seems fine to me, but you will most likely have to provide realm as an argument to these methods. The architecture seems logical if you want to reuse a complex query somewhere else.
We have experimental support for creating realm objects using the constructor of the class rather than realm.create.
realm.write(() => {
const newObject = new Object(realm, { _id: "123", name: "charles" });
})
The second definition will ensure the return type from new Object is correctly typed. If you omit this, then it will be typed as Realm.Object<unknown> instead of Realm.Object<MyRealmClass>.
You can ignore this and use realm.create if you so choose.