As Testmann referred second approach is best... but Mr.Vishnu in your case if one user is working on the Shared repository, second user can also open and work on that shared repository but only in the read only mode....
What is wrong with only having the repository as a read only?
We use a shared OP for each project, One person controls the OR and they determine what gets added to the OR so everyone isn't adding new things to the OR and messing up the structure.
You can still open and edit components just use the read/write option you just can't edit the OR unless they unlock it.
It works well for us we go in and create the OR and rename the objects so we know what they are and then no one touches it after we have added all of the objects. We can then all write our own components based of that OR.
I would recommend the second approach "Separate Object Rep for invidual functionalities"
because if the shared repository is growing above 3MB QTP will be slow and some times you will lose objects while recording.