Kafka is typically used for sending readable messages, although you can send binary formats. Sending very large data is not recommended due to performance issues on both the broker as well as the clients.
Enforcing a limit on the size of the message ensures that you will not end up storing large files which lead to increase in the load on your kafka brokers and client applications.
Regarding your original question as to whether to store just the changes/full message. You can choose either depending on your use-case.
If you store only the changes and if you are in need of other information, you would need to fetch it from somewhere else, perhaps a different database/datastore or another kafka topic, so this becomes an additional burden because you are involving another datastore and also some additional code for fetching. In simple words, you need to perform joins.
If you store the whole message, you will be saved from the performance hit of joins, however you may end up in relatively larger message size. Unless, your message is too large for your Kafka broker or your clients to handle and either/both of them are showing performance degradation due to the size, you can try tuning the parameters before you move on to using the "change-only" approach.
Typically, we store de-normalized data in Kafka to avoid joins.