It's a frequently asked, but unfortunately not a frequently answered question. In regards to contact management a lot of cool stuff could be accomplished with openacs if only the right bits were added. E.g. a way to add user attributes via a webinterface and manage them ...
For now a separate table that references persons is definitely much better than extending the core tables.