Currently, many CTxMempool::remove*() functions copy the transaction they delete to a std::list, and then erase the mempool entries. This copy + erase can be avoided by using c++11’s std::move.
Practically, this would mean passing a std::list<CTransaction>&
to all remove* functions, down to removeUnchecked, which would move the CTransactions being deleted to that list before calling the erase method on maptx.