From the 2017 LRM section 21.4
I can see the following "When $readmemh or $readmemb is given a file with address entries, initialization of the specified highest
dimension words is done. If the file contains insufficient words to completely fill a highest dimension word,
then the remaining subwords are left unchanged."
But in the LRM there is no specification of what should happen when the file is not present or no permissions are given, since this is probably OS dependant probably is not specified but there is some clarification for $writememh
"If filename exists at the time $writememb or $writememh is called, the file will be overwritten (i.e., there
is no append mode)."
So what would be the expected behaviour if the file cannot be read (I'd expect error but some tools just issue a warning) and why the LRM has no mention about it. or maybe having a return value would be an improvement.