Great article! Really enjoyed it. Really impressive performance improvement with the last method.
Speaking about other methods, it could be again any of the current ones, but fetching only the deltas - records updated/inserted after the last sync. I have always used to have a specific package and table to keep the delta information (like last sync date, latest id, etc.). And then my query would only return the needed records which are then transferred using any of the methods you mention. Or directly in bulk using a DBLink if available.