So your distinction is correct: a Return represents the customer's browser having been "returned" to your site, and a Notification represents a callback "notification" from the gateway directly to your app.
There are two reasons ActiveMerchant support both:
1) Some gateways only do one OR the other, not both. So we need to support both modes of communication.
2) Even when both are supported, the Return provides more immediacy but is less reliable. Notifications are potentially delayed, but delivery is (or at least should be) guaranteed.
So if a gateway supports both, it's generally advisable to implement both.