MAX_TX_SIGOPS limit is a tx standard forwarding rule, not part of the consensus. The name suggests it is part of the consensus (as MAX_BLOCK_SIGOPS, which it is).
It should be renamed to MAX_STANDARD_TX_SIGOPS.
Also this comment in main.cpp:
// Check that the transaction doesn't have an excessive number of
// sigops, making it impossible to mine. Since the coinbase transaction
// itself can contain sigops MAX_TX_SIGOPS is less than
// MAX_BLOCK_SIGOPS; we still consider this an invalid rather than
// merely non-standard transaction.
is confusing, because it's perfectly possible to mine a transaction with MAX_TX_SIGOPS sigops.
MAX_TX_SIGOPS limit is a tx standard forwarding rule, not part of the consensus. The name suggests it is part of the consensus (as MAX_BLOCK_SIGOPS, which it is).
It should be renamed to MAX_STANDARD_TX_SIGOPS.
Also this comment in main.cpp:
// Check that the transaction doesn't have an excessive number of
// sigops, making it impossible to mine. Since the coinbase transaction
// itself can contain sigops MAX_TX_SIGOPS is less than
// MAX_BLOCK_SIGOPS; we still consider this an invalid rather than
// merely non-standard transaction.
is confusing, because it's perfectly possible to mine a transaction with MAX_TX_SIGOPS sigops.