App engine Datastore cache or memcache
The 'Datastore caching' you refer to is implemented using memcache under the hood anyway, so you won't gain from additional explicit caching of these entities.
Python's ndb API and Java's Objectify both provide memcache-based automated caching for exactly this scenario.  Of course, you can still use memcache independently for additional application caching.
I have read that the datastore read request in the App engine get cached and subsequent reads performed on the same entity are fast.
So if i read an entity from datastore, are there any tangible benefits of storing the entity in the memcache explicitly for later fetches? Or would the datastore caching serve with sufficient efficiency?