Consider I am a token creator and have distributed the token to millions of accounts or users. As part of my token concept, token holders need to send data to other token holders or the creator. One way to accomplish this is to send transaction with minimum token value, pay the fee in XLM and attach the hash of the data in memo field. 1. The data is present in some server but the hash is stored in memo of a transaction. Hence memo can be treated as immutable since it's stored in ledger. Is this correct ? 2. Will the validators or others consider this as spamming? ( Since we are using memo field in a transaction )
With your idea you are going to use transactions on the stellar network as a message system to pass the hash to the recipient(s). That should technically work fine as the field is there and it won't be modified. But on the other hand you pointed out already that it won't help the main purpose of storing and transferring assets for everybody when you address millions of accounts.
I would consider a different solution where you own the message system and the memo field length won't be a limiting factor as well as horizon rate limits for sending/ receiving.
Just to mention it: it is also possible to store data within the accounts.