bpy.data.meshes.remove(me) does not remove shape keys

When using: me = ob.to_mesh(bpy.context.scene, False, 'PREVIEW)
with bpy.data.meshes.remove(me),
so that I can get vertex positions with modifiers like armature,
if the object mesh has shape keys, the shape keys are duplicated and hang around in bpy.data.shape_keys. I either need a way to delete shape keys from bpy.data.shape_keys, or a way to get vertex positions with armature deforms without duplicated the shape keys on the mesh.

Thoughts?