Hi Matt and welcome to our forum,
This is a common scenario. InfoPath supports designing a form to submit/retrieve to/from SQL but due to limitations in InfoPath, you have to do this at the beginning when you create your form. That's because InfoPath uses the schema that matches the relational database table that you are submitting to. If you already have a form, you can use a secondary data source to submit and retrieve data from SQL to work around this limitation but it requires more work (and some code). We also sell the Qdabra Database Accelerator product that allows you to easily hook up a pre-existing form to SQL without the need to write code. There are many other features in this suite.
You're right that submitting to SharePoint is straightforward. However, keep in mind that the SQL submit and the SharePoint submit are separate transactions. You'll want to make sure you treat one as the "main store" for your data. And if that submit fails, you should not let the other submit happen. As far as promoted properties go, it's easy to specify fields to promote to SharePoint.
Without using a solution like Database Accelerator (which allows storing the XSN as well as the form in the DB) you'll want to publish your form's template (the XSN) to SharePoint. Include a submit that first tries to submit to SQL and then saves to SharePoint. If the SQL submit fails, you may want to display an error message and prevent saving to SharePoint so that the SQL database does not become out of synch with SharePoint. Of course this is only a problem if SQL and SharePoint are on different machines and there is connectivity issues with one. It could also be a problem if you don't have the permissions set up correct in SQL or SharePoint.
Good luck! Let us know if you have any other questions.
Patrick Halstead
Project Manager at Qdabra