No, clients do not have to use the same certificates for signing and encrypting messages.
Actually, you already noted the reference yourself. Let me quote RFC 5751, section 2.5.3 on page 13:
2.5.3. Encryption Key Preference Attribute
The encryption key preference attribute allows the signer to unambiguously describe which of the signer's certificates has the signer's preferred encryption key. This attribute is designed to enhance behavior for interoperating with those clients that use separate keys for encryption and signing. This attribute is used to convey to anyone viewing the attribute which of the listed certificates is appropriate for encrypting a session key for future encrypted messages.
(bold-italic emphasis mine)
As the reference states, clients can (but do not have to) use separate keys for encryption and signing.