I don't see this implemented anywhere.  It also needs to support this case where:

vp2 = vp1
vp1.new_session()

so after, vp1 is using new (and unique) session but vp2 still using old-vp1 session.  Also, deleting vp1 with it's unique session, must not affect vp2 in any way.