Contacts model (and accounts model) should be singleton. It's nonsense to create several connection to nepomuk from the same program to do the same thing, but a programmer using the library could be unaware of this) and the connection should be created as early as possible (so that, for example, when populating a widget there is no chance to find the model still empty.
The new PersonSetModel etc architecture resolves the essence of this bug report (although in a different way).