According to the 249PythonDoc http://www.blender.org/documentation/249PythonDoc/
For link and unlink:
“If the object is already linked to the scene, no action is taken and no exception is raised.”
I will get for a linked object:
tempobj = Blender.Object.Get(’~temp’)
scn.objects.link(tempobj)
“RuntimeError: object already in the scene!”
Warning: Rant!
Is anybody using the python API to implement anything serious? I feel like any time I try something I have to work around things like the one above.