System collections can't be compacted:
// Items in system.* cannot be moved as there might be pointers to them. uassert(ErrorCodes::InvalidNamespace, "can't compact a system namespace", !nss.isSystem());
This restriction was added in SERVER-11595 and is likely an MMAP limitation. With WiredTiger being the default storage engine, this is no longer necessary as WiredTiger supports online compaction.