Spent a pointlessly long time on this.
Thanks to Mcnab.co, I sorted it out.
I’d created a custom homepage template which had the following line:
<?php echo $this->getHtml('global_notices') ?>
When instead it should be:
<?php echo $this->getHtml('global_messages') ?>
EDIT: Additionally, if you have products on your homepage with “Add to Cart” buttons, you’ll need a message for that too.
<div id="messages_product_view"><?php echo $this->getMessagesBlock()->toHtml() ?></div>
Plonk that wherever you like.