I think they’re now broadly free on all but the most restrictive plans- but when iMessage came to be they weren’t - and most phones wouldn’t split 160 characters into multiple messages. You were literally limited by that.
They used to charge extra if you were roaming too. I think T-Mobile was the first to stop and everyone followed.
Mostly the people running and modding it are insane.