hi Andrew, you should check out this recent webinar recording: https://www.mendix.com/live/native-sync-for-large-data-sets/
To answer your question, the retrieve action on a nanoflow would only return objects from the datastore local to the device.
Offline first means that your app does not require a network connection to work fine. With this in mind, I don’t understand your question why you want to retrieve a list with unsynced objects. Please read how the sync process works.
Also, isSynced() is only available in the page editor for visibility and editability conditions.
You could use a boolean attribute "IsChangedLocally" or something like that. Set the attribute to 'true' when you commit the object locally. Then just change it back to 'false' in an after commit event at synchronisation.