Check txout against the circulating supply instread of MAX_MONEY https://github.com/bitcoin/bitcoin/blob/aaaaad6ac95b402fe18d019d67897ced6b316ee0/src/consensus/tx_check.cpp#L27

If txout.nValue is more than the circulating supply and less than MAX_MONEY, CheckTransaction would return true.

Why not check txout.nValue against the circulating supply? and if it is above then just return false at that point.
There is no point. It would just be slower and more complex for no gain.

Despite what the name may imply, that test is not there to enforce the inflation schedule. It's there to prevent exploiting integer overflow (something which happened in Bitcoin's early history).

The test could be replaced with &gt; 1000000000000000000 instead and be equally effective.