In the case of unaccessible $HOME the ssh-keygen writes misleading error message
Created attachment 1818 [details] patch solving the problem
Is the error message that you are talking about "Could not create directory '/home/djm/.ssh'"? That doesn't seem misleading to me.
In the case when the directory exists it's misleading. One user contact me me asking why it prints "Could not create directory '/home/luser/.ssh'" when I have one? The stat() result EPERM means that user have insufficient permissions to existing file, respectively to the directory containing the file.
Created attachment 1842 [details] keygen-report-stat-errors.diff tweaked patch
patch applied. Will be in OpenSSH-5.6p1
Move resolved bugs to CLOSED after 5.7 release