Most of our data sits in a Azure SQL database. When there is a need to create a case, the minimum amount of data needed to create a Case should be pushed into D365 CE Customer Service. The entire lifecycle of the Case is then handled purely in Customer Service and data is never pushed back into Azure SQL.
Rather than using an API to push data into Dataverse, I think it makes sense to use Virtual Tables for anything unique in our Azure SQL database. For example, Customer Service does not have a concept of a "Application" record. Since the Application is what ties all the data about the applicant together and holds important identifying information outside of the standard Contact/Account records, I think this can just be a Virtual Table.
Where I'm not sure is how to handle overlapping tables. We have a Customer table in Azure SQL. Can you create a Virtual Table when a Customer table already exists in Dataverse? Is there a way to set up a sync between the two between let's say a limited set of four matching columns?