Try flushing memcache and see if the issue persists.
( You're probably getting the entity by key via ndb / objectify /etc that will query memcache / in-context cache first whether an entity exists & only then query the datastore. Since you removed the entity directly from the datastore and not the way you put it there - memcache had no way of knowing that and thus keeps returning things until it expires / gets flushed.
See more details here, so yeah, it's probably working as expected. )
Mihail.