It seems it's possible to perform a transaction that does not contain any comment or correspondence text.
For example, you might change the current state of the ticket, update time worked, change requestors, etc. I think even changing custom fields on a ticket might be possible. However, it seems functionality on custom fields on the transactions themselves is a bit limited. If I try for example making a transaction with an empty comment, where I update time worked, and also set a custom field, that does not seem to be reflected in the history. If I do it with a comment however, it seems to work fine. Am I doing something wrong, or is this just a bit of functionality that's not quite there?