As I understand it, the logic for tapscript was just “keep it roughly the same as segwit”, the logic for segwit was “we’re expanding the blocksize by a factor of up to 4, and that should apply to both the bytes and sigop limits”, and that brings us back to the original block size limit introduction:
+ // Check size
+ if (nHeight > 79400 && ::GetSerializeSize(*this, SER_NETWORK) > MAX_BLOCK_SIZE)
+ return error("AcceptBlock() : over size limit");
+
+ // Check that it's not full of nonstandard transactions
+ if (nHeight > 79400 && GetSigOpCount() > MAX_BLOCK_SIGOPS)
+ return error("AcceptBlock() : too many nonstandard transactions");
which seems to have just been limiting the DoS surface.
So I think there’s plenty of potential for making a more informed decision now, rather than just assuming what we’ve already got is sensible.