The relay-policy distinction is useful, but the old free-transaction allowance did change. Bitcoin Core 0.15 removed the remaining coin-age-priority handling, including the free-relay options. A zero-fee transaction can still be valid under consensus; getting it relayed or selected by a miner is a separate question. So I'd separate three things here: whether a transaction is valid, whether a node relays it, and whether a miner includes it. The removal is documented here: https://bitcoincore.org/en/releases/0.15.0/.
The relay-policy distinction is useful, but the old free-transaction allowance did change. Bitcoin Core 0.15 removed the remaining coin-age-priority handling, including the free-relay options. A zero-fee transaction can still be valid under consensus; getting it relayed or selected by a miner is a separate question. So I'd separate three things here: whether a transaction is valid, whether a node relays it, and whether a miner includes it. The removal is documented here: https://bitcoincore.org/en/releases/0.15.0/.