I am very familiar with Salesforce 2 Salesforce (S2S) and it works well for sharing data going forward between production-production orgs or sandbox-sandbox orgs, either automatically or manually. In fact, I understand that it also even works with production - developer orgs too, as per: How to connect Salesforce to Salesforce in Apex.
However, there are other methods of integrating Salesforce orgs with each other, as per: Integrate two Salesforce developer orgs. The most common alternative to using S2S seems to be leveraging the REST API. This link goes into some helpful detail on that: How can i integrate one SFDC org to another SFDC using Rest Api. Also, http://amulhai.blogspot.co.uk/2015/11/salesforce-to-salesforce-integration.html.
I understand that S2S is out of the box and is the default answer when choosing to integrate two Salesforce orgs with each other. But I'm curious to know what one can do with the REST API, or another option, that one couldn't with S2S.
My question is: what are the pros and cons of using S2S over the REST API, Named Credentials or External Objects alternative methods?