Delete "doubles" on different object
Here is a bit of a brute force approach, base object is context object, checks global vert positions against those of other mesh objects in the context.selected_objects collection.

import bpy
import bmesh
# tolerance to use 
TOL = 0.001

context = bpy.context
scene = context.scene

base_obj = context.object
base_mesh = base_obj.data

bbm = bmesh.new()
bbm.from_mesh(base_mesh)

# a list of global locations of base_mesh_object verts
locs = [base_obj.matrix_world * v.co for v in bbm.verts]

#meshes of selected objecst that aren't base_mesh
mesh_objs = [o for o in context.selected_objects
               if o.type == 'MESH'
               and o != base_obj and o.data != base_mesh]
# their meshes
meshes = [o.data for o in mesh_objs]

for o in mesh_objs:
    def tol(v1, v2):
        return (v1 - v2).length &lt; TOL

    # are there other objects sharing this mesh?
    if meshes.count(o.data) &gt; 1:
        # what to do?
        print("passing on ", o.name)
        continue

    bm = bmesh.new()
    #bm.from_object(o, scene)
    bm.from_mesh(o.data)
    update = False
    for v in bm.verts:
        # find if any global v pos match our list
        rem = [l for l in locs if tol(o.matrix_world * v.co, l)]
        # if so remove
        if len(rem):
            update = True
            bm.verts.remove(v)

    if update:        
        bm.to_mesh(o.data)

    bm.free()


A bounding_box search to eliminate objects that can't have  corresponding verts.  Would make an interesting live edit operator.

Somewhat related https://blender.stackexchange.com/a/40979/15543