I thought Facebook Messenger was very strict about assigning page-specific user IDs to avoid this. Last I checked there was no way to send a message to a Facebook user using their profile ID.
Facebook Messenger (and similar) can be spammed through UI interaction automation (on Android) or even manually with cheap labor in third-world countries.
iMessage is more resistant to this attack because the device is your credentials to the network (instead of an account) which makes such an attack very expensive if you need to replace banned iPhones every day.
I’ve actually seen spam on iMessage (a friend’s Apple account was compromised and she started seeing the spam messages sent by someone else thanks to iMessages’s iCloud sync) but I’m not too concerned because I assume the offending devices will be banned relatively quickly.