After investigating some more, I found that nLockTime requires in-memory transaction replacement to be re-activated for it to be useful.
Code:if (mapNextTx.count(outpoint)) { // Disable replacement feature for now return false;
// Allow replacing with a newer version of the same transaction
if (i != 0)
return false;
ptxOld = mapNextTx[outpoint].ptx;
if (!IsNewerThan(*ptxOld))
return false;
for (int i = 0; i < vin.size(); i++)
{
COutPoint outpoint = vin[i].prevout;
if (!mapNextTx.count(outpoint) || mapNextTx[outpoint].ptx != ptxOld)
return false;
}
break;