There is no way to open an existing Memory datastore. It must be created with CreateDataSource() and populated and used from that handle. When the datastore is closed all contents are freed and destroyed.
The driver does not implement spatial or attribute indexing, so spatial and attribute queries are still evaluated against all features. Fetching features by feature id should be very fast (just an array lookup and feature copy).
Feature ids passed to CreateFeature() are preserved unless they exceed 10000000 in which case they will be reset to avoid a requirement for an excessively large and sparse feature array.
New fields can be added to layer that already has features.