Alex-
I assume you intend to create a 1-way replica from the Desktop SDE db in SQL Express ("parent") to the Enterprise SDE db in Oracle ("child")
I'm no expert, but have used replication quite a bit for 3 years. It sounds like you have a good reason to use SDE replication for distributing GIS updates to the Oracle db.
I believe ArcSDE replica synchronization uses StateIDs and GlobalIDs to compare the parent & child databases.
Adds: If a parent record's GlobalID does not exist in the child table, then synchronization adds that new record in the child.
Deletes: If the child record's GlobalID doesn't exist in the parent, then synchronization deletes that missing record from the child.
Changes: I'm not exactly sure how the parent & child records with matching GlobalIDs are compared for differences in StateIDs
You will have to add the GUIDs to all featureclasses/featuredatasets/tables in both databases that participate in the replica, to support SDE replication. The Desktop SDE database will be "versioned", because the replica is a type of version. These system replica versions are filtered out, so they do not appear in the Version Manager alongside the user-created Versions, but they appear in the SDE_Versions table, if you (have permissions to) view it with DBMS tools or an OLE DBO connection in ArcCatalog.
The replica version can tie up a StateID or two, which can begin to affect performance on the parent or child, so you should develop a workflow for compressing immediately after synchronization, and minimizing the StateIDs. This won't be much of an issue on the Oracle SDE side, if that is not edited after you sync and compress it. The sync will unreference the replica version, essentially automatically posting-reconciling and deleting it, but I think the StateID of that version remains until you Compress.
You mention "many records", so beware that synchronization can be slow, particularly if the network connection is slow, especially when you are updating very large numbers of records. Desktop SDE in SQL Express is limited to 1GB of RAM, which can be like putting a governor on yor race car. You should make a test replica with copies of the databases on each server, and test the time it takes to sync an entire set of records from SQL Express to Oracle, to get an understanding of the performance.
You will have to determine how to initially create the replica, so that both parent and child start out identical. (BTW, use the ArcMap distributed gdb toolbar, create replica tool, and in the advanced options, be sure to change from the default option, to using the full extent of the data, and change all tables from schema-only to all records)
Since you describe deleting all features from the Oracle SDE db before appending all new records, I would do that first, and starting with empty tables/featureclasses, create the 1-way replica with the Desktop SDE db as the "parent", and the Oracle Enterprise SDE db as the "child". The first time you synchronize, it will re-populate the Oracle Enterprise
You asked the right question, though I'm not sure of the answer:
If you "edit the data in the SQL Express geodatabase using ADO/SQL and no ArcObjects or geoprocessing models", and bypass ArcSDE's ability to manage StateIDs of changed records, you may find that synchronization does not recognize attribute differences between the parent and child...
That's my 2 cents worth of advice, I hope I didn't discourage you. Good luck!