With a remote checkout you will not know the status of the transaction until sometime after the user is sent back to your site, because of this you shouldn't assume that the order was successful and send the user to the checkout success page. You should have the user returned to a page on your site and use the checkout form bindings for your checkout to check the status of the transaction. If you determine that the transaction was successful then you can redirect the user to a checkout success page where you have a Universal Email server behavior that will send the receipt.
The reason that you store the info in the db before the user is sent off to the remote checkout is because when you leave the domain your session will likely not be retained, so to get the details of the order it needs to be looked up from the database.
So I think the first step for you would be to create the page that the user will be sent back to. You will want to add in the checkout form variables by going to Bindings > eCart > checkout > checkout form response then choose Authorize.NET POST. This will give you the bindings that hold the values Authorize.Net sends back to your page. You can check the values returned and send the user to one page or another depending on what the values are. You should login to your Authorize.NET account and find the documentation for the checkout, it will explain what the values are and what they mean.
Please post back with any other questions that you have about any part of this and we will be glad to help you with whatever we can.