https://www.mediawiki.org/wiki/Manual:Update.php says "Normally update.php purges the objectcache table in the database (generally contains the parser cache and the messages cache), if you don't want to purge this table, use the --nopurge option."
which is correct. It just deleted everything from objectcache.
However, that doesn't help with ResourceLoader JSON message blobs. Separately, MessageBlobStore::getFromDB says:
// Update the module's blobs if the set of messages changed or if the blob is older than $wgCacheEpoch
I suspect people don't run into this often because extension updates often change the set of messages (e.g. adding some). But if you just change the text, you hit it.
I can't think of any logical reason update.php should clear one message cache, but not another.
I also don't know any other way around this besides changing the epoch or manually messing with the database.
I think the simplest way to do it would be wipe out msg_resource and msg_resource_links . These are regenerated as needed by MessageBlobStore::insertMessageBlob .
It should behave the same in terms of --nopurge.