Standardness rules related to BIP 16 (P2SH)
In general, changes to policy rules are not specified in BIPs. They're up to individual clients anyway.

BIP16 is not obsolete, though its description of the standardness rules in Bitcoin Core is outdated by now. However, its consensus rules (i.e., what is valid in a block, not what will be relayed as individual transactions) are unmodified since it activated in 2012 — anything else would be a hard fork.

As far as policy in Bitcoin Core goes, in version 0.10.0 (2014), relaxed standardness for P2SH spends, allowing any script using up to 15 signature checks. Several later changes to standardness were made (including every script-affected softfork (CLTV, CSV, Segwit) was accompanied with making corresponding spends standard), but none so fundamental.

Today (Bitcoin Core v0.19.0) standardness rules for P2SH spends include:


Max scriptSig size is 1650 bytes including redeemScript (not enforced on testnet)
Max 15 signature checks in the script (not enforced on testnet)
No opcodes intended for future upgrades (NOP3-NOP10) [discourage upgradable nops rule]
No non-DER encoded signatures, or hybrid public keys [strictenc rule]
No signatures with s values in the upper half of the range [low-s rule]
The additional argument popped by OP_CHECKMULTISIG(VERIFY) must be exactly the empty byte array (as pushed by OP_0) [nulldummy rule]
All pushes must use the minimal size encoding (OP_i instead of direct pushes where available, no OP_PUSHDATAi when unnecessary), integers can't have unnecessary zero padding [minimaldata rule]
Execution must end with exactly one non-zero element on the stack [cleanstack rule]
Checksig operations that fail must be passed an empty signature [nullfail rule]
OP_CODESEPARATOR cannot be used (not even in an unexecuted branch).
Signatures that are verified cannot appear in the scriptPubKey (they must come from the scriptSig) [const scriptcode rule]
At the transaction level: no tx version above 2, and the whole tx cannot be larger than 400000 weight units (100000 bytes if no segwit inputs are present).