The problem with messages is that you end up with a massive pile of them that is impossible to manage. We can improve this in a number of ways:
1. Repeated messages should NOT send a new message, it should make the old one flash again. (e.g. if the house is still unoccupied).
2. Messages should have more information in them, instead of just saying "these troops are hungry, say "these Pikemen are hungry". Not sure how that will work with translations because just inserting "Pikemen" from the troop names might not work in languages where nouns change depending on the circumstance (do any languages even do that?

) Similarly say "This mill is not occupied" not "This house is not occupied". That should make it much easier to manage messages
Even just those two fairly small changes should make a big difference IMO, most of the message spam is due to repeated messages as far as I've seen.
Other ideas to improve it further:
3. Maybe combine "house not occupied" messages into one message you can't delete that appears at the bottom of the list when there is at least one unoccupied house. It could say: These houses in your village are not occupied: Mill, woodcutter, stables" and the message is updated live as you train the units and disappears when all the houses are occupied.
4. Something similar for troops? (would need a "go to" button next to each group)