TLDR: You can't tell by just counting the A and D table records; you also need to know if the object was in the business (base) table as well.
Objects from the base table which have not been modified before deletion have only an entry in the deletes table (Base, Delete)
Objects which have never been posted to the base table would have the same number of ...
Turns out there were orphan records in the sde.table_registry table.
When I checked the logs it showed that the jpa_viewer account was getting a lot of errors trying to select from tables that didn't exist in the geodata schema. But the phantom tables existed as records in the sde.table_registry. Once I cleaned out these phantom tables jpa_viewer account ...
Modified from Jaime Burgos. The CROSS APPLY line had the parameter for Oracle. It is different in SQL as included below.
i.Name AS FeatureClass
,xVal.value('DomainName', 'nvarchar(max)') Domain
FROM GDB_ITEMS i JOIN GDB_ITEMTYPES it
ON i.Type = it.UUID
CROSS APPLY i.Definition.nodes('/*/...