If we were to say “no one reads the license; it’s just boilerplate!” and add it elsewhere — say the bottom of the readme or in another file like disclaimer.md — it would quickly just become other, different boilerplate that no one reads.
You can’t solve the problem of understanding norms by writing copy. I’m resigned to everyone learning the hard way.
You can mitigate the problem by adding a short summation before or in between something they're likely to read.
This is why there's no conflict between the people who are aggrieved at OSS maintainers suddenly closing their software, and the people who say "it says no warranty right there in the license".
The default position is that there's no social contract. It's only through interacting with and building a community does a social contract (and associated expectations) arise. It's not codified in the license.