The objective is to reduce the CPU cost and response time for a piece of code that runs very often and must db.get() several hundred keys each time.
To remove properties from an entity, you can change your Model to an Expando, and then use delattr. It's documented in the App Engine docs here:
http://code.google.com/intl/fr/appengine/articles/update_schema.html
Under the heading "Removing Deleted Properties from the Datastore"
if I want to reduce the size of my entities, is it necessary to migrate the old entities to ones with the new definition?
Yes. The GAE data store is just a big key-value store, that doesn't know anything about your model definitions. So the old values will be the old values until you put new values in!
To answer your questions in order: