Application Modeler Sharing is always Optional in Object
Some Scenario Based Example when I used it in my module -
1. If we have one application and multiple part under that application we need to distribute amongst the certain members of team. we can make one parent object keep all primary things Launch ,Login, Terminate, or some common thing as per your application. Then make this sharable object so that child object can directly use this as it is and if needed add more elements in application modeler of child object as per there process or objectives.
2. If you add some element in app modeler of Child Object which used shareable objects. of it parent Object then in parent app modeler it will be also visible.
3. It can be benefit if you wanted to take back into release as if you can include parent object all elements of child will be present.
4. Easy to distribute work with different developer in the team as each dev can focus on his own design as common objects elements are already designed.
5. Totally wish of dev how they wanted to segregate things in object level