Hi Gus,
Usually my customers use sharing function to let other users to access the record (access can be read, update, assign, share), but we still want to keep the ownership to that particular user or team.
By sharing, the other users or team can assign, but I will still the one who own the record, so that I will be always can access the record.
Different story, if you use assign to let other users can access, what happened if you assign, you will lose the ownership of the record, and if the record you assign to someone outside from your Business Unit but you don't have privilege to read the record from other BU, then you will lose the record. Sharing is to keep the ownership belongs to whom but anybody can access after you share to them.
So, in our life, for example: you create a drop box storage, then you want to share to your friends or make it as public, you can set, the sharing access is only can view or even can edit, but, you still in fact have the files, you will not lose the file, and you still be able to retrieve the file, and you can stop the sharing function in the future, but you cannot track your friend, has shared to whom?
And, sharing is kind of unstructured, same concept with the previous example, after you make your link as public, you share to friends, your friend can share to anyone as well if you give them the access, then it is very difficult to track now, your shared file has reached to somewhere, you event don't know.
Sharing in CRM, after you share, you can try to unshared, but you need to check one by one record, cannot do multiple unshared, even though you can do multiple share. (multiple record at once).
So, now in CRM 2013, we have Access Team that can help you as well to combine security role and sharing function.
But, in fact, to make it faster, and for some organizations that collaboration is very important, and individual in the companies are sharing each other (no secret each other), then I think sharing is still useful.
Hope this helps you!
Thank you.