I find that I use the explanatory messages less and less.
If I use great names for my tests (as you recommend in an earlier article), the test name usually tells me everything I need to know about the failure.
The only time I need explanatory messages is when I have multiple assertions in one test method. But that violates another of your excellent articles (about testing only one thing).
As I make each test test only one thing, I need multiple assertions less and less. And as I write great names for tests, the explanatory messages become redundant.
I also find myself using messages in asserts less and less.
I find the use of the messages in asserts to be a subtle form of duplication. As tests & code get refactored the messages tend not get updated and over time the messages become misleading. The test name/method name is usually enough.