It turns out the ESMF objects that are created in lnd_set_decomp_domain that could be cleaned after they are used as they are only needed in initialization. The objects are in local memory, but the memory that ESMF allocates for them isn't cleared without doing explicit Destroy or Release calls.