Since users can create smart contracts, can't someone just embed plain text into the smart contract and then have that sent to another user in effect making it a messaging system? and how much would each message cost per byte?
Yes, this is possible and quite simple, but not necessarily advisable. Some things to keep in mind:
- All messages need to be encrypted off-chain. Otherwise anyone can read all of your communication
- Storage is expensive. It's not incredibly cost-prohibitive, but users would need to buy ether and keep their accounts funded. Costs can be reduced by using Events instead of storage.
- Whisper is a messaging system based on the Ethereum p2p protocol that would be more suited to this application. It is separate from the blockchain and does not require Ether.