Let's say I call out to an external service, get some results, use them in a transaction which then crashes. As a result, the transaction is rolled back. The same effect can be achieved with save points and an explicit rollback.
Since Salesforce had the result of a synchronous callout, the callout did go to an external service. Also, since Salesforce does not control external services, any work done on external systems is not rolled back.
Am I correct in my understanding?