The current LMAP design is a static Hash Directory that lives in the Top Record. That hash directory contains hash cells that can contain either a (configurable) small number of data objects or a pointer to a sub-record that contains the data objects. The Hash Directory size is configurable.
So, in the current design, it is never the case that we replace multiple sub-records with a single sub-record. Each sub-record aligns to a hash cell. Also, the user does not have direct control over the sub-records. They are employed by the LSET/LMAP code and are used as needed. The user has control ONLY over how many data objects are added or removed.
And, just FYI … We will soon be adding a dynamic hash table option (that uses the Linear Hashing Algorithm) that will grow gracefully as the size of the data collection grows. In that case, where the hash table grows and shrinks, we may find that we not only split sub-records during growth, but also coalesce sub-records as the hash table shrinks.