To answer your first question, BarApp should not. I did not try to prevent this, but I do not see how, if you do not confuse the URI, BarApp can run FooSite, not FooApp.
To answer your second question, the SFSafariViewController is extremely limited in that the developer is allowed access. You can set the start URL, find out when the original URL is loaded, and find out when the user clicked the quit button. It. Do not check the current URL, do not interfere with requests, etc.
source share