This is an excellent idea.
I used to use Adestra and you could get quite creative with the logic in that including being able to substitute whole phrases/sentences based on properties.
For instance, Adestra could (and it would be good to be able to do this in HubSpot) put ‘Dear Matthew,’ but if my first name is only ‘M’ it could pick up on the fact it was just one letter (you could specify the length of the content using different numbers of … in the code) and replace with either ‘Dear friend,’ (as a fall back variant) or ‘Hi there,’ depending on how you set up the rule.
Looked a bit like this:
IF <first name> is .. = ‘Hi there’ ELSE Dear <first name> END