Should different key pairs be used for signing and encryption?
Yes.

Modern cryptosystems are designed and analysed under the assumption that the key is never used for anything else. If you use your encryption keys for digital signatures, you are violating that assumption, and it is very easy to construct schemes where this violation will compromise security.
It is possible to construct schemes that can use the same key, but there is little reason to do so.

I have not looked at the specifics of iMessage, but I suspect that every time you send a message, you encrypt that message for many recipients (each device, possibly), but sign only once. Each device will have to decrypt only one ciphertext, and verify one signature.
RSA is very fast for encryption, while ECDSA is faster at verification. EC-based encryption would be more expensive for encryption. Apple's choices seem reasonable.