Payment codes establish the identity of the payer and allow for simpler methods for identifying the payee, and automatically provide the payee with the information they need to send a refund.
If merchants and customers were using payment codes, they would not need the BIP70 equivalents.
I think the best way to explain payment codes is that they add the missing "from address" to transactions which users want, but we've had to tell them they can't have.
A payment code behaves much more like an email address than a traditional Bitcoin address.