This sounds like a great direction to go. In my mind, you could break it down into 3 separate modules.
* userprofile - A way of users to register / log-in and add themselves to a profile database. This could be taken out of the forum, so that the forum's profile system relies on this.
* userfriends - This would plug an addition piece of data into the userprofile, namely, a friends list. You would want some way of filtering
* socialdatabase - This would be the basis of things like the "jobs" database. It would provide forms for creating and finding database entires. You could search for items that have been created by you, or by your friends. You could also implement things like commenting and rating at this level, and then search for items that you or your friends have rated / commented on.
The way to make this the most powerful would be to allow for any of the modules to be included / excluded as appropriate. For example, if you have a socialdatabase module without a userfriends module, then you would still get a working database, but the "search for items posted by my friends" options would no longer be included.
One possible way to implement this would be to create an API that allowed 3rd parties to develop new classes for different ways of searching.
The SearchFilter / SearchContext work being don on the roa branch could be a potential place for this kind of API: http://open.silverstripe.com/browser/modules/sapphire/branches/roa/search